小编Cor*_*son的帖子

仅针对现有行在 Knex 迁移中设置默认 notNullable 引用列

我有一个 postgresql 数据库,我正在尝试使用 Knex 进行以下迁移以将不可为空的引用列添加到现有表中:

exports.up = function (knex) {
  return knex.schema.table('Donation', (table) => {
    table.integer('causeId').notNullable();
    table.foreign('causeId').references('Cause.id');
  });
};
Run Code Online (Sandbox Code Playgroud)

当我运行此迁移时,由于现有行,我收到以下错误:

error: alter table "Donation" add column "causeId" integer not null - column "causeId" contains null values
Run Code Online (Sandbox Code Playgroud)

我只想为现有行使用默认值作为列种子。对于后续插入,如果未提供值,我宁愿插入失败,因此.notNullable().defaultTo(...)无法工作。

我想也许defaultTo()只用于初始迁移,然后删除限制,但我对如何完成此任务一无所知。

任何帮助,将不胜感激!

javascript database postgresql database-migration knex.js

4
推荐指数
1
解决办法
4813
查看次数

将 React 组件存储在 Redux 减速器中?

我正在为我的应用程序创建一个通用的模态 React 组件来显示各种不同的东西。我希望它足够灵活以显示纯 HTML 和交互式 React 组件。

我已经通过将可显示组件存储在我的 Redux 模态减速器中来使其工作。到目前为止,我还没有遇到任何问题。

以前有没有人采用过这种方法?我无法在网上找到任何示例,所以我不确定这是否是不好的做法。如果是这样,您是否建议使用另一种方法来处理?

modal-dialog reactjs redux react-redux

0
推荐指数
1
解决办法
1842
查看次数