소스 검색

fix: cascade delete pageTree on page delete (#1119)

NGPixel 5 년 전
부모
커밋
ab8391c085
2개의 변경된 파일58개의 추가작업 그리고 0개의 파일을 삭제
  1. 35 0
      server/db/migrations-sqlite/2.0.0-rc.2.js
  2. 23 0
      server/db/migrations/2.0.0-rc.2.js

+ 35 - 0
server/db/migrations-sqlite/2.0.0-rc.2.js

@@ -0,0 +1,35 @@
+exports.up = knex => {
+  return knex.schema
+    .dropTable('pageTree')
+    .createTable('pageTree', table => {
+      table.increments('id').primary()
+      table.string('path').notNullable()
+      table.integer('depth').unsigned().notNullable()
+      table.string('title').notNullable()
+      table.boolean('isPrivate').notNullable().defaultTo(false)
+      table.boolean('isFolder').notNullable().defaultTo(false)
+      table.string('privateNS')
+
+      table.integer('parent').unsigned().references('id').inTable('pageTree').onDelete('CASCADE')
+      table.integer('pageId').unsigned().references('id').inTable('pages').onDelete('CASCADE')
+      table.string('localeCode', 5).references('code').inTable('locales')
+    })
+}
+
+exports.down = knex => {
+  return knex.schema
+    .dropTable('pageTree')
+    .createTable('pageTree', table => {
+      table.increments('id').primary()
+      table.string('path').notNullable()
+      table.integer('depth').unsigned().notNullable()
+      table.string('title').notNullable()
+      table.boolean('isPrivate').notNullable().defaultTo(false)
+      table.boolean('isFolder').notNullable().defaultTo(false)
+      table.string('privateNS')
+
+      table.integer('parent').unsigned().references('id').inTable('pageTree')
+      table.integer('pageId').unsigned().references('id').inTable('pages')
+      table.string('localeCode', 5).references('code').inTable('locales')
+    })
+}

+ 23 - 0
server/db/migrations/2.0.0-rc.2.js

@@ -0,0 +1,23 @@
+exports.up = knex => {
+  return knex.schema
+    .table('pageTree', table => {
+      table.dropColumn('parent')
+      table.dropColumn('pageId')
+    })
+    .table('pageTree', table => {
+      table.integer('parent').unsigned().references('id').inTable('pageTree').onDelete('CASCADE')
+      table.integer('pageId').unsigned().references('id').inTable('pages').onDelete('CASCADE')
+    })
+}
+
+exports.down = knex => {
+  return knex.schema
+    .table('pageTree', table => {
+      table.dropColumn('parent')
+      table.dropColumn('pageId')
+    })
+    .table('pageTree', table => {
+      table.integer('parent').unsigned().references('id').inTable('pageTree')
+      table.integer('pageId').unsigned().references('id').inTable('pages')
+    })
+}