/** * @param { import("knex").Knex } knex * @returns { Promise } */ exports.up = async function(knex) { await knex.schema .createTable('counters_', table => { table.increments('id').primary().notNullable(); table.string('key').notNullable(); table.string('emoji').notNullable(); table.integer('value').defaultTo(0); table.string('channel').notNullable(); table.string('guild').notNullable(); table.string('message'); table.string('messageTemplate'); table.boolean('allowlistConsumer'); table.boolean('allowlistProducer'); }); // awfulllllllllllllll const rows = await knex('counters').select('*'); if (rows.length > 0) await knex('counters_').insert(rows); await knex.schema .dropTable('counters') .renameTable('counters_', 'counters'); await knex.schema .alterTable('counterUserLink', table => { table.integer('id').references('id').inTable('counters'); }); //await knex('counterUserLink') // .update({id: true}) // .whereIn('id', function () { this.select('id').from('counters'); }); // uneteknykheyonshtevysfyncenadmyonayakdrmkade await knex.raw('update counterUserLink set id = (select counters.id from counters where counters.key = counterUserLink.key)'); await knex.schema .alterTable('counterUserLink', table => { table.dropColumn('key'); }); await knex.schema .alterTable('counterConfigurations', table => { table.integer('id').references('id').inTable('counters'); }); //await knex('counterConfigurations') // .update({id: true}) // .whereIn('id', function () { this.select('id').from('counters'); }); // VEYNEYENSHYCSHJEYNVSYONEHONFEsFOVTKOSHGJEFKOhGKJJDPFURCP&*V(P&*(VC^@ P&*^vC PJFUV@P&*UVP&*(P P@ PF@# P*P&*@# ))) await knex.raw('update counterConfigurations set id = (select counters.id from counters where counters.key = counterConfigurations.counter)'); await knex.schema .alterTable('counterConfigurations', table => { table.dropColumn('counter'); table.dropColumn('guild'); }); }; /** * @param { import("knex").Knex } knex * @returns { Promise } */ // eslint-disable-next-line @typescript-eslint/no-unused-vars exports.down = function(knex) { throw 'Not implemented'; // literally fuck off };