我正在尝试使用很多外键迁移表。我按正确的顺序排列它们,以便在要求时外键始终存在。
我正在使用postgresSQL。
这是我的迁移顺序:
当我在提案迁移中要求user_id和project_id时,它的效果很好。当我在需求迁移中要求它时,它告诉我以下内容:
<ul>
<li id="main">
<a href="javascript:void(0)">List</a>
<ul class="submenu" >
<li onclick="closesSan()" >Bacon</li>
<li onclick="closesSan()">Tuna</li>
<li onclick="closesSan()">Chicken</li>
</ul>
</li>
</ul>
这是用户迁移:
migration failed with error: alter table "need"."need" add constraint "user_id" foreign key ("id") references "member"."user" ("id") - column "id" referenced in foreign key constraint does not exist
这是需要迁移的地方:
exports.up = (knex, Promise) => {
return createMemberSchema()
.then(createUser);
function createMemberSchema(){
return knex.schema.raw('CREATE SCHEMA member');
}
function createUserParent(){
return knex.schema
.withSchema('member')
.createTable('user', (table) => {
table.increments();
table.string('username').unique().notNullable();
table.string('email').unique().notNullable();
table.string('password').notNullable();
table.timestamps();
});
}
});
exports.down = (knex, Promise) => {
return dropUser()
.then(dropMemberSchema);
function dropMemberSchema(){
return knex.schema.raw('DROP SCHEMA member');
}
function dropUser() {
return knex.schema
.withSchema('member')
.dropTable('user');
}
});
与提案迁移完全相同,但是在这里效果很好。