【问题标题】:rake :db migrate does not return anythingrake :db migrate 不返回任何内容
【发布时间】:2011-06-05 16:36:35
【问题描述】:

我创建了一个模型文章,并在 001_create_articles.rb 中添加了以下代码

class CreateArticles < ActiveRecord::Migration
  def self.up
create_table :articles do |t|
    t.string :title
    t.text   :body
    t.string :published_at

    t.timestamps
end
  end
def self.down
drop_table :articles
end
end

然后我尝试运行

 rake db:migrate --trace
我没有得到任何输出,控制台只是闪烁了一分钟。 耙子的输出是 C:\InstantRails-2.0-win\rails_apps\blog>rake db:migrate --trace (在 C:/InstantRails-2.0-win/rails_apps/blog 中) ** 调用 db:migrate (first_time) ** 调用环境(first_time) ** 执行环境 ** 执行数据库:迁移 ** 调用 db:schema:dump (first_time) ** 调用环境 ** 执行 db:schema:dump

rake :db migrate 在我的任何项目中都不起作用

Mysql 服务器也在运行,我可以登录到服务器。我的 database.yml 文件很好。

这是配置问题还是我遗漏了什么?

【问题讨论】:

  • 您确定此迁移尚未完成吗?通常迁移文件以时间戳为前缀。您在数据库的 schema_migrations 表中有什么?
  • @Aditya。在我的 Rails (2.0.2) 中,只有数字前缀。有一个文件 schema.rb 没有文章表的详细信息。这很疯狂。它一直工作到yest。但是现在突然之间它不是:(而且,它是一个新的脚手架应用程序
  • 您是使用 ruby​​ 脚本生成迁移/生成迁移还是手动创建了迁移文件?
  • 当我创建脚手架应用程序时,默认情况下它就在那里。我没有使用 ruby​​ 脚本/生成创建

标签: mysql ruby-on-rails rake


【解决方案1】:

您的数据库有一个 schema_migrations

如果文件已经运行,版本号会在那里,您可以删除该数据库中的条目并运行 db:migrate,注意它可能也会删除您的所有数据。

如果您想在不修改数据的情况下对数据库进行增量更改,您可以创建一个修改现有数据库结构的新迁移示例:

note that you need to do this in a new migration file.
class AddAttachmentCxpp1ToCustomer < ActiveRecord::Migration
  def self.up
    add_column :customers, :cxpp1_file_name, :string
    add_column :customers, :cxpp1_content_type, :string
    add_column :customers, :cxpp1_file_size, :integer
    add_column :customers, :cxpp1_updated_at, :datetime
  end

  def self.down
    remove_column :customers, :cxpp1_file_name
    remove_column :customers, :cxpp1_content_type
    remove_column :customers, :cxpp1_file_size
    remove_column :customers, :cxpp1_updated_at
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2020-04-27
    • 2019-04-06
    • 2012-02-15
    • 2020-09-07
    相关资源
    最近更新 更多