refactor, удалены интерфейс БД из-за слабой необходимости
This commit is contained in:
@@ -83,9 +83,27 @@ async def upgrade(db: BaseDBAsyncClient) -> str:
|
||||
op.creative_id, op.purchase_channel_id, op.post_id, op.project_id
|
||||
FROM "old_placement" op;
|
||||
|
||||
-- Шаг 6: Обновить subscription (placement_id -> publication_id)
|
||||
-- Шаг 6: Обновить foreign keys для таблиц, ссылающихся на old_placement
|
||||
|
||||
-- 6.1: Обновить subscription (placement_id -> publication_id)
|
||||
-- Удалить constraint ДО переименования колонки
|
||||
ALTER TABLE "subscription"
|
||||
DROP CONSTRAINT IF EXISTS "subscription_placement_id_fkey";
|
||||
|
||||
-- Переименовать колонку
|
||||
ALTER TABLE "subscription" RENAME COLUMN "placement_id" TO "publication_id";
|
||||
|
||||
-- 6.2: Обновить workspace_user_permission_scope.placement_id
|
||||
-- Удалить старый foreign key constraint ДО обновления данных
|
||||
ALTER TABLE "workspace_user_permission_scope"
|
||||
DROP CONSTRAINT IF EXISTS "workspace_user_permission_scope_placement_id_fkey";
|
||||
|
||||
-- Обновить данные: старые placement_id -> новые placement_id (через purchase_channel_id)
|
||||
UPDATE "workspace_user_permission_scope" wups
|
||||
SET placement_id = op.purchase_channel_id
|
||||
FROM "old_placement" op
|
||||
WHERE wups.placement_id = op.id;
|
||||
|
||||
-- Шаг 7: Создать индексы и constraints
|
||||
CREATE INDEX "idx_placement_project_4155ce"
|
||||
ON "placement" ("project_id", "status");
|
||||
@@ -108,6 +126,11 @@ async def upgrade(db: BaseDBAsyncClient) -> str:
|
||||
CREATE UNIQUE INDEX "uid_subscriptio_publica_578bfb"
|
||||
ON "subscription" ("publication_id", "telegram_user_id");
|
||||
|
||||
ALTER TABLE "workspace_user_permission_scope"
|
||||
ADD CONSTRAINT "fk_workspac_placemen_8c5d3f2a"
|
||||
FOREIGN KEY ("placement_id")
|
||||
REFERENCES "placement" ("id") ON DELETE CASCADE;
|
||||
|
||||
-- Шаг 8: Добавить комментарии
|
||||
COMMENT ON TABLE "placement"
|
||||
IS 'Размещение, управляемое пользователем (бывший PurchaseChannel + Purchase)';
|
||||
@@ -262,10 +285,28 @@ async def downgrade(db: BaseDBAsyncClient) -> str:
|
||||
pub.creative_id, pub.placement_id, pub.post_id, pub.project_id
|
||||
FROM "publication" pub;
|
||||
|
||||
-- Шаг 8: Обновить subscription (publication_id -> placement_id)
|
||||
-- Шаг 8: Обновить foreign keys обратно
|
||||
|
||||
-- 8.1: Обновить subscription (publication_id -> placement_id)
|
||||
-- Удалить новый foreign key constraint
|
||||
ALTER TABLE "subscription"
|
||||
DROP CONSTRAINT IF EXISTS "fk_subscrip_publicat_1959be9e";
|
||||
|
||||
-- Переименовать колонку обратно
|
||||
ALTER TABLE "subscription" RENAME COLUMN "publication_id" TO "placement_id";
|
||||
|
||||
-- Шаг 9: Создать индексы
|
||||
-- 8.2: Обновить workspace_user_permission_scope.placement_id обратно
|
||||
-- Удалить constraint на новый placement
|
||||
ALTER TABLE "workspace_user_permission_scope"
|
||||
DROP CONSTRAINT IF EXISTS "fk_workspac_placemen_8c5d3f2a";
|
||||
|
||||
-- Обновить данные обратно: новые placement_id -> старые placement_id
|
||||
UPDATE "workspace_user_permission_scope" wups
|
||||
SET placement_id = pub.id
|
||||
FROM "publication" pub
|
||||
WHERE wups.placement_id = pub.placement_id;
|
||||
|
||||
-- Шаг 9: Создать индексы и constraints
|
||||
CREATE INDEX "idx_purchase_project_status" ON "purchase" ("project_id", "status");
|
||||
CREATE INDEX "idx_placement_purchas_61f9e6"
|
||||
ON "placement" ("purchase_channel_id");
|
||||
@@ -279,6 +320,11 @@ async def downgrade(db: BaseDBAsyncClient) -> str:
|
||||
CREATE UNIQUE INDEX "uid_subscriptio_placeme_75b40b"
|
||||
ON "subscription" ("placement_id", "telegram_user_id");
|
||||
|
||||
ALTER TABLE "workspace_user_permission_scope"
|
||||
ADD CONSTRAINT "fk_workspac_placemen_8c5d3f2a"
|
||||
FOREIGN KEY ("placement_id")
|
||||
REFERENCES "placement" ("id") ON DELETE CASCADE;
|
||||
|
||||
-- Шаг 10: Удалить новые таблицы
|
||||
DROP TABLE IF EXISTS "publication";
|
||||
DROP TABLE IF EXISTS "new_placement";
|
||||
|
||||
Reference in New Issue
Block a user