加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在初始迁移期间,Rails在schema_migrations表中

发布时间:2020-12-17 02:39:03 所属栏目:百科 来源:网络整理
导读:在新数据库上运行迁移会导致以下错误. rake db:drop; rake db:create:all; rake db:migrate 1 activity-image-additions-!?== CreateSomething: migrating ================================================-- create_table(:somethings) - 0.0042s== Creat
在新数据库上运行迁移会导致以下错误.

>> rake db:drop; rake db:create:all; rake db:migrate
                                                                                           1 activity-image-additions-!?
==  CreateSomething: migrating ================================================
-- create_table(:somethings)
   -> 0.0042s
==  CreateSomething: migrated (0.0043s) =======================================

rake aborted!
An error has occurred,this and all later migrations canceled:

PG::UndefinedColumn: ERROR:  column "id" does not exist
LINE 1: ...O "schema_migrations" ("version") VALUES ($1) RETURNING "id"
                                                                   ^
: INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "id

生成的SQL查询不应包含RETURNING“id”,因为schema_migrations表没有id.

如果我在失败后尝试迁移数据库,它会成功:

>> rake db:migrate

==  CreateSomething: migrating ================================================
-- create_table(:somethings)
   -> 0.0041s
==  CreateSomething: migrated (0.0042s) =======================================

我目前在OS X 10.8上运行PostgreSQL 9.2.4,Rails 4.0.0,pg gem 0.16.0.

唯一的迁移:

class CreateSomething < ActiveRecord::Migration
  def change
    create_table :somethings do |t|
      t.integer :x
      t.integer :y
    end
  end
end

注意:我在其他Rails项目中尝试过这种迁移,但它确实有效.还有别的不对劲,但我不知道从哪里开始.

堆栈跟踪可用on pastebin.

解决方法

设置新数据库时,不应运行rake db:migrate.相反,您应该使用rake db:schema:load.

迁移系统旨在更新架构.在全新安装上,可以更快,更方便地立即加载最新的架构.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读