jillo-bot/migrations/20231113151937_giveCounters...

72 lines
2.3 KiB
JavaScript

/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
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<void> }
*/
// eslint-disable-next-line @typescript-eslint/no-unused-vars
exports.down = function(knex) {
throw 'Not implemented'; // literally fuck off
};