我以前从未使用过数据库,所以这对我来说是全新的。我在 RubyMine,Rails 3 中工作。
- 首先,什么是迁移,为什么要迁移?我不能只通过数据库浏览器编辑数据库吗?迁移会保留我的数据吗?
- 其次,我继承了一个项目,migration文件夹下有3个文件,名称如20120128022506_users.rb。如果我只是运行迁移任务,我会得到:
SQLite3::SQLException:表“projects”已经存在:CREATE TABLE“projects”(“id”INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,“partner_id”整数,“name”varchar(255))
事实上,如果您查看名为 的文件"20120531031320_projects.rb"
,正如预期的那样,它正在尝试创建一个项目表:
def up
create_table :projects do |table|
table.integer :partner_id
table.string :name
end
add_index :projects, :name
end
这个项目是从 Sinatra 移植过来的,可能 db 和迁移文件不同步(如果这是正确的术语)。无论如何,有没有办法在这些迁移文件和数据库之间进行同步,以便我可以使用新的迁移文件向数据库添加一个新表?