【问题标题】:Update Knex.js table without loosing data在不丢失数据的情况下更新 Knex.js 表
【发布时间】:2018-05-29 15:24:20
【问题描述】:

我不确定如何使用 Knex.js 更改架构中的表。目前我有一个看起来像这样的表:

.createTable('users', function(table) {
  table.increments('id')
  table
    .text('username')
    .notNullable()
    .unique()
  table.text('name')
  table
    .text('email')
    .notNullable()
    .unique()
  table.string('password').notNullable()
  table
    .text('profile_image')
    .defaultTo('http://www.ecehh.org/wp-content/uploads/2018/02/avatar.jpg')

我想做的是将defaultTo 更改为profile_image。我从这里http://perkframework.com/v1/guides/database-migrations-knex.html 读到 “我们永远不想在运行迁移文件后编辑它,因为当我们运行 knex migrate:latest knex 不会进行更改。迁移只会运行一次。” 所以我想知道如何在不重新运行迁移的情况下更新它的值,然后丢失所有当前数据。

感谢阅读!

【问题讨论】:

    标签: database knex.js


    【解决方案1】:

    它是生产服务器吗?

    从这个issue我认为这可以工作。

    exports.up = knex => {
      return knex.schema
        .alterTable('users', table => {
          table.text('profile_image').defaultTo('myurl').alter()
      });
    };
    
    exports.down = knex => {
      return knex.schema.alterTable('users', table => {
          table.text('profile_image').defaultTo('myurl').alter()
      });
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 2017-02-17
      • 1970-01-01
      相关资源
      最近更新 更多