split FKs into another file
This commit is contained in:
parent
3b2edb4ca9
commit
317ca7ded2
3 changed files with 74 additions and 38 deletions
|
|
@ -10,6 +10,7 @@ module.exports = {
|
||||||
database: process.env.POSTGRES_DB,
|
database: process.env.POSTGRES_DB,
|
||||||
username: process.env.POSTGRES_USER,
|
username: process.env.POSTGRES_USER,
|
||||||
password: process.env.POSTGRES_PASSWORD,
|
password: process.env.POSTGRES_PASSWORD,
|
||||||
|
logging: console.log,
|
||||||
define: {
|
define: {
|
||||||
timestamps: false,
|
timestamps: false,
|
||||||
freezeTableName: true,
|
freezeTableName: true,
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ module.exports = {
|
||||||
{ transaction: t }
|
{ transaction: t }
|
||||||
),
|
),
|
||||||
queryInterface.createTable(
|
queryInterface.createTable(
|
||||||
'login_challenge_completed',
|
'nostr_challenge_created',
|
||||||
{
|
{
|
||||||
uuid: {
|
uuid: {
|
||||||
type: Sequelize.UUID,
|
type: Sequelize.UUID,
|
||||||
|
|
@ -56,13 +56,14 @@ module.exports = {
|
||||||
unique: true,
|
unique: true,
|
||||||
primaryKey: true,
|
primaryKey: true,
|
||||||
},
|
},
|
||||||
nostr_challenge_completed_uuid: {
|
challenge: {
|
||||||
type: Sequelize.UUID,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
public_key: {
|
|
||||||
type: Sequelize.STRING,
|
type: Sequelize.STRING,
|
||||||
allowNull: false,
|
allowNull: false,
|
||||||
|
unique: true,
|
||||||
|
},
|
||||||
|
expires_at: {
|
||||||
|
type: Sequelize.DATE,
|
||||||
|
allowNull: false,
|
||||||
},
|
},
|
||||||
created_at: {
|
created_at: {
|
||||||
type: Sequelize.DATE,
|
type: Sequelize.DATE,
|
||||||
|
|
@ -91,32 +92,6 @@ module.exports = {
|
||||||
},
|
},
|
||||||
{ transaction: t }
|
{ transaction: t }
|
||||||
),
|
),
|
||||||
|
|
||||||
queryInterface.createTable(
|
|
||||||
'nostr_challenge_created',
|
|
||||||
{
|
|
||||||
uuid: {
|
|
||||||
type: Sequelize.UUID,
|
|
||||||
allowNull: false,
|
|
||||||
unique: true,
|
|
||||||
primaryKey: true,
|
|
||||||
},
|
|
||||||
challenge: {
|
|
||||||
type: Sequelize.STRING,
|
|
||||||
allowNull: false,
|
|
||||||
unique: true,
|
|
||||||
},
|
|
||||||
expires_at: {
|
|
||||||
type: Sequelize.DATE,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
created_at: {
|
|
||||||
type: Sequelize.DATE,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ transaction: t }
|
|
||||||
),
|
|
||||||
queryInterface.createTable(
|
queryInterface.createTable(
|
||||||
'nostr_challenge_completed',
|
'nostr_challenge_completed',
|
||||||
{
|
{
|
||||||
|
|
@ -130,12 +105,6 @@ module.exports = {
|
||||||
type: Sequelize.STRING,
|
type: Sequelize.STRING,
|
||||||
allowNull: false,
|
allowNull: false,
|
||||||
unique: true,
|
unique: true,
|
||||||
references: {
|
|
||||||
model: {
|
|
||||||
tableName: 'nostr_challenge_created',
|
|
||||||
},
|
|
||||||
key: 'challenge',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
signed_event: {
|
signed_event: {
|
||||||
type: Sequelize.JSONB,
|
type: Sequelize.JSONB,
|
||||||
|
|
@ -152,6 +121,30 @@ module.exports = {
|
||||||
},
|
},
|
||||||
{ transaction: t }
|
{ transaction: t }
|
||||||
),
|
),
|
||||||
|
queryInterface.createTable(
|
||||||
|
'login_challenge_completed',
|
||||||
|
{
|
||||||
|
uuid: {
|
||||||
|
type: Sequelize.UUID,
|
||||||
|
allowNull: false,
|
||||||
|
unique: true,
|
||||||
|
primaryKey: true,
|
||||||
|
},
|
||||||
|
nostr_challenge_completed_uuid: {
|
||||||
|
type: Sequelize.UUID,
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
public_key: {
|
||||||
|
type: Sequelize.STRING,
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
created_at: {
|
||||||
|
type: Sequelize.DATE,
|
||||||
|
allowNull: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ transaction: t }
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
42
src/database/migrations/20250308000001-first-schema-fks.js
Normal file
42
src/database/migrations/20250308000001-first-schema-fks.js
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
'use strict';
|
||||||
|
module.exports = {
|
||||||
|
up: (queryInterface, Sequelize) => {
|
||||||
|
return queryInterface.sequelize.transaction((t) => {
|
||||||
|
return Promise.all([
|
||||||
|
queryInterface.addConstraint('login_challenge_created', {
|
||||||
|
fields: ['nostr_challenge_uuid'],
|
||||||
|
type: 'foreign key',
|
||||||
|
references: {
|
||||||
|
table: 'nostr_challenge_created',
|
||||||
|
field: 'uuid',
|
||||||
|
},
|
||||||
|
onDelete: 'cascade',
|
||||||
|
onUpdate: 'cascade',
|
||||||
|
}),
|
||||||
|
queryInterface.addConstraint('nostr_challenge_completed', {
|
||||||
|
fields: ['challenge'],
|
||||||
|
type: 'foreign key',
|
||||||
|
references: {
|
||||||
|
table: 'nostr_challenge_created',
|
||||||
|
field: 'challenge',
|
||||||
|
},
|
||||||
|
onDelete: 'cascade',
|
||||||
|
onUpdate: 'cascade',
|
||||||
|
}),
|
||||||
|
queryInterface.addConstraint('login_challenge_completed', {
|
||||||
|
fields: ['nostr_challenge_completed_uuid'],
|
||||||
|
type: 'foreign key',
|
||||||
|
references: {
|
||||||
|
table: 'nostr_challenge_completed',
|
||||||
|
field: 'uuid',
|
||||||
|
},
|
||||||
|
onDelete: 'cascade',
|
||||||
|
onUpdate: 'cascade',
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
down: (queryInterface, Sequelize) => {
|
||||||
|
return queryInterface.dropTable('Users');
|
||||||
|
},
|
||||||
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue