fix(server): plan 4 — un-skip PARITY-009 (FK deleteRule and index-name parity)

This commit is contained in:
jubnl
2026-09-24 05:22:31 +02:00
parent 88fa13d55a
commit 8f825e445e
14 changed files with 409 additions and 53 deletions
@@ -18,9 +18,9 @@ export const AssignmentParticipantsSchema = defineEntity({
uniques: [{ properties: ['assignment', 'user'] }],
properties: {
id: p.integer().primary(),
assignment: () => p.manyToOne(DayAssignments).ref().hidden().index('idx_assignment_participants_assignment'),
assignment: () => p.manyToOne(DayAssignments).ref().deleteRule('cascade').hidden().index('idx_assignment_participants_assignment'),
assignment_id: p.integer().persist(false).index('idx_assignment_participants_assignment'),
user: () => p.manyToOne(Users).ref().hidden(),
user: () => p.manyToOne(Users).ref().deleteRule('cascade').hidden(),
user_id: p.integer().persist(false),
},
});
+1 -1
View File
@@ -52,7 +52,7 @@ export const BudgetItemsSchema = defineEntity({
note: p.text().nullable(),
sort_order: p.integer().nullable(),
created_at: p.type(DbTimestampType).nullable().defaultRaw(`CURRENT_TIMESTAMP`),
paidByUser: () => p.manyToOne(Users).ref().nullable().hidden(),
paidByUser: () => p.manyToOne(Users).ref().deleteRule('no action').nullable().hidden(),
paid_by_user_id: p.integer().nullable().persist(false),
expense_date: p.text().nullable().defaultRaw(`NULL`),
reservation: () => p.manyToOne(Reservations).ref().nullable().hidden().defaultRaw(`NULL`),
@@ -35,7 +35,7 @@ export const BudgetSettlementsSchema = defineEntity({
to_user_id: p.integer().persist(false),
amount: p.double().defaultRaw(`0`),
created_at: p.type(DbTimestampType).nullable().defaultRaw(`CURRENT_TIMESTAMP`),
createdByUser: () => p.manyToOne(Users).ref().nullable().hidden(),
createdByUser: () => p.manyToOne(Users).ref().deleteRule('no action').nullable().hidden(),
created_by_user_id: p.integer().nullable().persist(false),
currency: p.text().nullable(),
exchange_rate: p.double().defaultRaw(`1`),
@@ -24,7 +24,7 @@ export const DawarichConnectionsSchema = defineEntity({
class: DawarichConnections,
repository: () => DawarichConnectionsRepository,
properties: {
user: () => p.oneToOne(Users).primary().ref().nullable().hidden(),
user: () => p.oneToOne(Users).primary().ref().deleteRule('cascade').nullable().hidden(),
user_id: p.integer().nullable().persist(false),
url: p.text().nullable(),
api_key: p.text().nullable(),
@@ -22,7 +22,7 @@ export const JourneyContributorsSchema = defineEntity({
properties: {
journey: () => p.manyToOne(Journeys).primary().ref().hidden(),
journey_id: p.integer().persist(false),
user: () => p.manyToOne(Users).primary().ref().hidden().index('idx_journey_contributors_user'),
user: () => p.manyToOne(Users).primary().ref().deleteRule('no action').hidden().index('idx_journey_contributors_user'),
user_id: p.integer().persist(false).index('idx_journey_contributors_user'),
role: p.text(),
added_at: p.integer(),
+1 -1
View File
@@ -44,7 +44,7 @@ export const OauthTokensSchema = defineEntity({
refresh_token_expires_at: p.type(DbTimestampType),
revoked_at: p.type(DbTimestampType).nullable(),
created_at: p.type(DbTimestampType).nullable().defaultRaw(`CURRENT_TIMESTAMP`),
parentToken: () => p.manyToOne(OauthTokens).ref().nullable().hidden().index('idx_oauth_tokens_parent'),
parentToken: () => p.manyToOne(OauthTokens).ref().deleteRule('no action').nullable().hidden().index('idx_oauth_tokens_parent'),
parent_token_id: p.integer().nullable().persist(false).index('idx_oauth_tokens_parent'),
audience: p.text().nullable(),
oauth_tokens_collection: () => p.oneToMany(OauthTokens).mappedBy('parentToken').hidden(),
@@ -16,7 +16,7 @@ export const PlaceRegionsSchema = defineEntity({
class: PlaceRegions,
repository: () => PlaceRegionsRepository,
properties: {
place: () => p.oneToOne(Places).primary().ref().nullable().hidden(),
place: () => p.oneToOne(Places).primary().ref().deleteRule('cascade').nullable().hidden(),
place_id: p.integer().nullable().persist(false),
country_code: p.text().index('idx_place_regions_country'),
region_code: p.text().index('idx_place_regions_region'),
@@ -18,9 +18,9 @@ export const ReservationTravelersSchema = defineEntity({
uniques: [{ properties: ['reservation', 'user'] }],
properties: {
id: p.integer().primary(),
reservation: () => p.manyToOne(Reservations).ref().hidden().index('idx_reservation_travelers_res'),
reservation: () => p.manyToOne(Reservations).ref().deleteRule('cascade').hidden().index('idx_reservation_travelers_res'),
reservation_id: p.integer().persist(false).index('idx_reservation_travelers_res'),
user: () => p.manyToOne(Users).ref().hidden().index('idx_reservation_travelers_user'),
user: () => p.manyToOne(Users).ref().deleteRule('cascade').hidden().index('idx_reservation_travelers_user'),
user_id: p.integer().persist(false).index('idx_reservation_travelers_user'),
},
});
@@ -18,7 +18,7 @@ export const RoadtripDayTracksSchema = defineEntity({
class: RoadtripDayTracks,
repository: () => RoadtripDayTracksRepository,
properties: {
day: () => p.oneToOne(Days).primary().ref().nullable().hidden(),
day: () => p.oneToOne(Days).primary().ref().deleteRule('cascade').nullable().hidden(),
day_id: p.integer().nullable().persist(false),
place: () => p.manyToOne(Places).ref().deleteRule('cascade').hidden().index('idx_roadtrip_day_tracks_place'),
place_id: p.integer().persist(false).index('idx_roadtrip_day_tracks_place'),
+1 -1
View File
@@ -28,6 +28,6 @@ export const TripMembersSchema = defineEntity({
user_id: p.integer().persist(false).index('idx_trip_members_user_id'),
invited_by: p.integer().nullable().persist(false),
added_at: p.type(DbTimestampType).nullable().defaultRaw(`CURRENT_TIMESTAMP`),
invitedByRef: () => p.manyToOne(Users).ref().joinColumn('invited_by').nullable().hidden(),
invitedByRef: () => p.manyToOne(Users).ref().joinColumn('invited_by').deleteRule('no action').nullable().hidden(),
},
});
@@ -17,7 +17,7 @@ export const VacayUserSettingsSchema = defineEntity({
class: VacayUserSettings,
repository: () => VacayUserSettingsRepository,
properties: {
user: () => p.oneToOne(Users).primary().ref().nullable().hidden(),
user: () => p.oneToOne(Users).primary().ref().deleteRule('cascade').nullable().hidden(),
user_id: p.integer().nullable().persist(false),
year_type: p.text().default('calendar'),
year_start_month: p.integer().default(1),