为什么环境数据库的默认值与开发环境不一样?

时间:2016-02-19 04:08:09

标签: 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

并在模型

处设置primary_key
class Hoge < ActiveRecord::Base
  self.primary_key = :id
end
然后,我执行exec迁移,成功创建了开发数据库

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)

1 个答案:

答案 0 :(得分:-2)

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

准备测试数据库