diff --git a/migrate/migrate.go b/migrate/migrate.go index 8f523f92229fd7b9715f44e3ae3a75ac3eec4b39..85c66961649cee596f2b50a7f419ea0bb4e15523 100644 --- a/migrate/migrate.go +++ b/migrate/migrate.go @@ -63,6 +63,7 @@ type migrationService struct { func StartupCheck(logger *zap.Logger, db *sql.DB) { migrate.SetTable(migrationTable) + migrate.SetIgnoreUnknown(true) ms := &migrate.AssetMigrationSource{ Asset: func(path string) ([]byte, error) { diff --git a/migrate/sql/20210416090601-purchase.sql b/migrate/sql/20210416090601-purchase.sql index 373baa47a5149e1346a8c873c0459503df567a67..46b4c2450b2a0b4a73f35c770e85cb31f19a920b 100644 --- a/migrate/sql/20210416090601-purchase.sql +++ b/migrate/sql/20210416090601-purchase.sql @@ -19,6 +19,7 @@ DROP TABLE IF EXISTS purchase_receipt; CREATE TABLE IF NOT EXISTS purchase ( PRIMARY KEY (transaction_id), + FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE SET NULL, create_time TIMESTAMPTZ NOT NULL DEFAULT now(), environment SMALLINT NOT NULL DEFAULT 0, -- Unknown(0), Sandbox(1), Production(2) @@ -28,7 +29,7 @@ CREATE TABLE IF NOT EXISTS purchase ( store SMALLINT NOT NULL DEFAULT 0, -- AppleAppStore(0), GooglePlay(1), Huawei(2) transaction_id VARCHAR(512) NOT NULL CHECK (length(transaction_id) > 0), update_time TIMESTAMPTZ NOT NULL DEFAULT now(), - user_id UUID NOT NULL + user_id UUID DEFAULT NULL ); CREATE INDEX IF NOT EXISTS purchase_user_id_purchase_time_transaction_id_idx ON purchase (user_id, purchase_time DESC, transaction_id); @@ -38,7 +39,6 @@ DROP TABLE IF EXISTS purchase; CREATE TABLE IF NOT EXISTS purchase_receipt ( PRIMARY KEY (receipt), - FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE NO ACTION, create_time TIMESTAMPTZ NOT NULL DEFAULT now(), product_id VARCHAR(512) NOT NULL,