Adonis.js - 播种用户和配置文件抛出数据库错误 (Postgres)
Adonis.js - Seeding Users and Profiles throwing DB error (Postgres)
我正在尝试为具有一对一关系的用户和配置文件编写种子文件,目前正在获得 "error: relation 'user_profiles' does not exist"。通过四处挖掘,在多对多关系的情况下,Adonis 似乎会假设这是一个支点 table。我(认为或打算)拥有的是用户和配置文件之间的一对一关系。提前致谢! SQL 和 Adonis 的新手。作为旁注,用户坚持到数据库,但没有相应的配置文件。
// My User Schema
class UserSchema extends Schema {
up () {
this.create('users', (table) => {
table.increments('id')
table.string('username', 80).notNullable().unique()
table.string('email', 254).notNullable().unique()
table.string('password', 60).notNullable()
// table.integer('profile_id').unsigned().references('id').inTable('userprofiles')
table.timestamps()
})
}
down () {
this.drop('users')
}
}
// My Profile Schema
class UserprofileSchema extends Schema {
up () {
this.create('userprofiles', (table) => {
table.increments()
table.string('first_name')
table.string('last_name')
// table.integer('user_id')
// .unsigned().references('id').inTable('users')
table.integer('user_id')
.unsigned()
.index('user_id')
table.foreign('user_id')
.references('users.id')
table.timestamps()
})
}
down () {
this.drop('userprofiles')
}
}
我的用户模型包括以下关系定义:
profile () {
return this.hasOne('App/Models/UserProfile')
}
// Seed script
class UserSeeder {
async run () {
try {
const user = await Factory.model('App/Models/User').create()
const userProfile = await Factory.model('App/Models/UserProfile').make()
userProfile.user_id = user.id
await user.profile().save(userProfile)
} catch (e) {
console.log('Error From Seeder: ', e);
}
}
}
错误代码“42P01”,如果需要,可以 post 全身。谢谢!
在您的模型 userProfile
上,按如下方式设置 table 名称。
class User extends Model {
static get table () {
return 'userprofiles'
}
}
我正在尝试为具有一对一关系的用户和配置文件编写种子文件,目前正在获得 "error: relation 'user_profiles' does not exist"。通过四处挖掘,在多对多关系的情况下,Adonis 似乎会假设这是一个支点 table。我(认为或打算)拥有的是用户和配置文件之间的一对一关系。提前致谢! SQL 和 Adonis 的新手。作为旁注,用户坚持到数据库,但没有相应的配置文件。
// My User Schema
class UserSchema extends Schema {
up () {
this.create('users', (table) => {
table.increments('id')
table.string('username', 80).notNullable().unique()
table.string('email', 254).notNullable().unique()
table.string('password', 60).notNullable()
// table.integer('profile_id').unsigned().references('id').inTable('userprofiles')
table.timestamps()
})
}
down () {
this.drop('users')
}
}
// My Profile Schema
class UserprofileSchema extends Schema {
up () {
this.create('userprofiles', (table) => {
table.increments()
table.string('first_name')
table.string('last_name')
// table.integer('user_id')
// .unsigned().references('id').inTable('users')
table.integer('user_id')
.unsigned()
.index('user_id')
table.foreign('user_id')
.references('users.id')
table.timestamps()
})
}
down () {
this.drop('userprofiles')
}
}
我的用户模型包括以下关系定义:
profile () {
return this.hasOne('App/Models/UserProfile')
}
// Seed script
class UserSeeder {
async run () {
try {
const user = await Factory.model('App/Models/User').create()
const userProfile = await Factory.model('App/Models/UserProfile').make()
userProfile.user_id = user.id
await user.profile().save(userProfile)
} catch (e) {
console.log('Error From Seeder: ', e);
}
}
}
错误代码“42P01”,如果需要,可以 post 全身。谢谢!
在您的模型 userProfile
上,按如下方式设置 table 名称。
class User extends Model {
static get table () {
return 'userprofiles'
}
}