ruby-on-rails - 为什么环境数据库的默认值不是同一个开发环境?

标签 ruby-on-rails postgresql psql

我创建了id为bigint的表

class Hoge < ActiveRecord::Migration
  def change
    create_table :hoges, id: false do |t|
      t.column    :id,  :serial8, primary_key: true
      t.integer   :bar, null: false
    end
  end
end

并在模型中设置主键

class Hoge < ActiveRecord::Base
  self.primary_key = :id
end

然后,我执行迁移,开发数据库创建成功

Column        |            Type             |                        Modifiers
--------------+-----------------------------+----------------------------------------------------------
 id           | integer                     | not null default nextval('hoges_id_seq'::regclass)
 bar          | integer                     | not null

然后,我执行“rake test” 测试数据库已创建,但无效。默认为 0.....

 Column       |            Type             |                        Modifiers
--------------+-----------------------------+----------------------------------------------------------
 id           | integer                     | not null default 0
 bar          | integer                     | not null

为什么测试环境的数据库和开发环境不一样? (数据库是postgres)

最佳答案

您应该使用命令 rake db:test:prepare

准备您的测试数据库

关于ruby-on-rails - 为什么环境数据库的默认值不是同一个开发环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497130/

相关文章:

ruby-on-rails - 带参数的redirect_to。如何将它们传递给我?

ruby-on-rails - Rails ERB <%-…-%>与<%…%>

ruby-on-rails - ruby rails : Observers and flash[:notice] messages?

linux - "pg_restore"或附近的 Postgresql 错误语法错误

postgresql - WHERE name = 'cat' 失败而 `WHERE name LIKE ' %cat` 在 PostGres 上工作

从另一台机器上的 HTML 文件访问 PHP 文件

mysql - 将 sql 文件转储到 Heroku 中的 ClearDB

python - SQLAlchemy:查询包含数组和计数匹配项的 JSON 列 (PostgreSQL)

sql - postgresql - 尝试将变量从命令行传递到 sql 脚本时出错

postgresql - 为什么 psql 找不到现有表的关系名称?