我正在开发我的第一个ruby on rails项目,并使用“rails generate scaffold users”命令为我的应用创建了一个“用户”表。
现在我正在尝试撤消此语句,因为我希望尝试在我的数据库中重写与该类和表相关的类。
我看到scaffold语句在迁移中创建了一个“def change”类,当我尝试回滚该迁移时,迁移中没有任何功能。我添加了一个“def down”方法,其中只定义了“drop_table:users”。
def down
drop_table :users
end
但是,当我运行“rake db:rollback”时,命令提示符中没有响应,表格没有变化。
我不太确定如何撤消此迁移以重写表架构。有人可以提供帮助吗?
整个迁移如下所示:
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :password_digest
t.string :email
t.timestamps
end
end
def down
drop_table :users
end
end
编辑: 通过运行db:drop和db:rollback来清除我的架构来解决此问题。我认为在我的另一个程序中打开数据库存在问题。我关闭它,这允许数据库回滚。
答案 0 :(得分:0)
rails generate scaffold users
不会更改您的数据库,它只会生成MVC代码。您可以通过destroy scaffold
命令
rails destroy scaffold users
如果运行rake db:migrate
命令,则可以通过rake db:rollback
命令回滚它。在迁移文件中,change
方法足以用于表的创建或删除操作。不需要down
方法,down
方法是up
方法的补充方法。