【问题标题】:ruined database through 'rake db:setup'? (RoR)通过'rake db:setup'破坏了数据库? (罗尔)
【发布时间】:2012-08-25 08:27:11
【问题描述】:


昨天,我试图建立一个名为“Elasticsearch”的全文搜索引擎,我按照 Railscasts.com (http://railscasts.com/episodes/306-elasticsearch-part-1?view=comments&_=1345840910957) 上的说明将该搜索引擎集成到我的网站上。 我按照任务调用'rake db:setup',它“重新创建”了我的整个数据库(不想要那个),现在没有任何效果。
Rails 似乎从 schema.rb 重新创建了数据库,但它只创建了表和索引,而不是与之关联的列。 http://img14.imageshack.us/img14/1535/bildschirmfoto20120825u.png
我在 _development 数据库上。

运行rake db:setup 看起来像这样:

doanything_development already exists 
doanything_test already exists
-- create_table("admin_notes", {:force=>true})
NOTICE:  CREATE TABLE will create implicit sequence "admin_notes_id_seq" for serial column "admin_notes.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "admin_notes_pkey" for table "admin_notes"
   -> 0.1088s
-- add_index("admin_notes", ["admin_user_type", "admin_user_id"], {:name=>"index_admin_notes_on_admin_user_type_and_admin_user_id"})
   -> 0.0064s
-- add_index("admin_notes", ["resource_type", "resource_id"], {:name=>"index_admin_notes_on_resource_type_and_resource_id"})
   -> 0.0049s ...<br /><br />
Schema.rb looks like: " create_table "users", :force => true do |t|<br />
    t.string   "name"
    t.string   "email"
    t.datetime "created_at",:null => false
    t.datetime "updated_at",:null => false ... end <br />

它在我的 pgdb 表“序列”列上创建,例如 "users_id_seq",这是我以前没有的。运行 'rake db:migrate' 不会加载任何现有的迁移文件:例如

class AddSaltToUsers < ActiveRecord::Migration <br/>
  def change <br/>
    add_column :users, :salt, :string <br/>
  end
end

版本是:ruby 1.9.3p194、Rails 3.2.6 和 PostgreSQL 9.1.4

如果有人能弄清楚刚刚发生了什么以及我如何让我的网站重新运行。

【问题讨论】:

  • OK 我通过运行'rake db:migrate:reset' 解决了它,它再次从头开始重置了我的数据库。我强烈建议您在遵循一些教程时阅读每个 cmd 对您的应用程序所做的事情。感谢您的关注

标签: ruby-on-rails postgresql rake


【解决方案1】:

如果您运行 rake db:migrate 一次。 AddSaltToUsers 的迁移可能已经运行。如果是这样,有几种方法可以解决这个问题。

要么创建一个新的迁移文件,要么手动编辑schema_migrations,方法是从该表中删除版本号,然后重新运行rake db:migrate。我强烈不建议您使用后者,因为如果您不知道自己在做什么,它可能会搞砸您的迁移。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多