72 lines
2.3 KiB
JavaScript
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
|
|
};
|