| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- /* global WIKI */
 
- exports.up = async knex => {
 
-   const dbCompat = {
 
-     charset: (WIKI.config.db.type === `mysql` || WIKI.config.db.type === `mariadb`),
 
-     selfCascadeDelete: WIKI.config.db.type !== 'mssql'
 
-   }
 
-   return knex.schema
 
-     .dropTable('pageTree')
 
-     .createTable('pageTree', table => {
 
-       if (dbCompat.charset) { table.charset('utf8mb4') }
 
-       table.integer('id').unsigned().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('pageTree', table => {
 
-       if (dbCompat.selfCascadeDelete) {
 
-         table.integer('parent').unsigned().references('id').inTable('pageTree').onDelete('CASCADE')
 
-       } else {
 
-         table.integer('parent').unsigned()
 
-       }
 
-       table.integer('pageId').unsigned().references('id').inTable('pages').onDelete('CASCADE')
 
-       table.string('localeCode', 5).references('code').inTable('locales')
 
-     })
 
- }
 
- exports.down = knex => {
 
-   const dbCompat = {
 
-     charset: (WIKI.config.db.type === `mysql` || WIKI.config.db.type === `mariadb`),
 
-     selfCascadeDelete: WIKI.config.db.type !== 'mssql'
 
-   }
 
-   return knex.schema
 
-     .dropTable('pageTree')
 
-     .createTable('pageTree', table => {
 
-       if (dbCompat.charset) { table.charset('utf8mb4') }
 
-       table.integer('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('pageTree', table => {
 
-       table.integer('parent').unsigned().references('id').inTable('pageTree')
 
-       table.integer('pageId').unsigned().references('id').inTable('pages')
 
-       table.string('localeCode', 5).references('code').inTable('locales')
 
-     })
 
- }
 
 
  |