postgresql - 在使用 Knex.js 时,我进行了迁移和种子,但种子数据未显示在 PostgreSQL 数据库中
问题描述
所以我不得不为我正在做的一个项目制作一个新的表格和种子数据。当我运行迁移时,我没有问题。我运行种子时没有任何问题,但是当我查看 PostgreSQL 数据库中应该存在的数据时,就像所有其他种子一样。由于某种原因,它没有添加数据,我无法弄清楚为什么会发生这种情况。如果有人可以帮助我找到解决方案,那就太好了。代码和截图如下:
- 移民
exports.up = function (knex) { return knex.schema.createTable('alliance', (table) => { table.increments('alliance_id').primary() table.string('alliance_name') table.string('description') table.integer('user_id') table .foreign('user_id') .references('user_id') .inTable('users') .onDelete('cascade') }) } exports.down = function (knex) { return knex.schema.dropTable('alliance') }
- 种子
const alliances = require('../seed-data/alliance-data') exports.seed = function (knex) { return knex .raw('TRUNCATE TABLE alliance RESTART IDENTITY CASCADE') .then(function () { return knex('alliance').insert(alliances) }) }
- 种子数据
module.exports = [ { alliance_id: 0, alliance_name: 'test 1', description: 'testing 123', }, ]
- Knex 配置
const path = require('path') require('dotenv').config() const { DATABASE_URL = 'postgresql://postgres@localhost/postgres', } = process.env module.exports = { development: { client: 'postgresql', connection: DATABASE_URL, pool: { min: 0, max: 100 }, migrations: { directory: path.join(__dirname, 'src', 'db', 'migrations'), }, seeds: { directory: path.join(__dirname, 'src', 'db', 'seeds'), }, }, production: { client: 'postgresql', connection: DATABASE_URL, pool: { min: 0, max: 100 }, migrations: { directory: path.join(__dirname, 'src', 'db', 'migrations'), }, seeds: { directory: path.join(__dirname, 'src', 'db', 'seeds'), }, }, test: { client: 'sqlite3', connection: { filename: ':memory:', }, migrations: { directory: path.join(__dirname, 'src', 'db', 'migrations'), }, seeds: { directory: path.join(__dirname, 'src', 'db', 'seeds'), }, useNullAsDefault: true, }, }
解决方案
这个问题的解决方案是确保你的种子和迁移的顺序正确。
推荐阅读
- odbc - 在 odbc 和 snowsql 中设置数据库大小?
- vb.net - 如何从 VB.NET 运行 DOS/CMD/命令提示符命令并希望将其终端输出保持几秒钟?
- ffmpeg - FFMPEG 裁剪边界动画
- sas - 基于其他几个列的总和列 - SAS
- ruby-on-rails - Rails:按合同设计/团队合作/功能依赖
- python - 使用 Pandas 合并某些行的列数据
- node.js - 在 Discord Webhook 上嵌入图像时出现问题(图像托管在 Wordpress 网站上)
- r - 如何使用 future.callr 抑制随机数生成警告?
- windows - CMake 错误:无法创建命名生成器 Visual Studio 16 2019
- arrays - 使用 LazyVGrid 时,DetailView 仅调用数组中的第一项