我使用Rails 4.0和Ruby 2.3.0
我有一个小型Rails应用程序。起初我想根据他/她注册的内容为每个用户分配不同的角色。所以我尝试了https://github.com/MartinJNash/Royce
中的“Royce”宝石在看到它对我的要求太复杂之后我卸载了它。
然后我尝试了“简单角色”宝石,看看它是如何工作的https://github.com/stanislaw/simple_roles。我也卸载了。当我在我的应用程序中拥有这2个宝石时,我运行了db:migrate。
现在我不想在schema.rb中使用这两个宝石中的相应表格。它并不完全干扰我的应用程序,但我想删除它们。
以下是我的schema.rb文件
{}
即使我已经卸载了2个角色-gems,每次运行rake db:migrate时,我都会得到上面的架构。
我在我的应用中仅使用“会话”和“供应商”表。 知道我应该做些什么来摆脱这些不需要的表吗?
答案 0 :(得分:0)
查看create view UsersWithAddr as
select u.f1, u.f2, ..., a.f1, a.f2,...
from Users u
join Addresses a
on a.ID = u.AddrID;
create view VenuesWithAddr as
select v.f1, v.f2, ..., a.f1, a.f2,..., c.Latitude, c.Longitude
from Users u
join Addresses a
on a.ID = u.AddrID
join Coords c
on c.AddrID = a.ID;
目录。查找并删除与这些gem相关的迁移。
删除迁移文件后,您可以再次运行app/db/migrate
。然后运行rake db:migrate
并检查新生成的rake db:schema:dump
文件,以确保您没有为您删除的宝石保留任何表格。
答案 1 :(得分:0)
首先检查表格是否存在... 在rails控制台 ...
##to view all tables
ActiveRecord::Base.connection.tables
我使用rails console
直接删除表格...
ActiveRecord::Base.connection.execute("drop table table_name")
###========OR===============
ActiveRecord::Migration.drop_table(:table_name)
###=========OR===============
ActiveRecord::Migration.drop_table("table_name")
然后,删除迁移文件或通过更改时间戳再次重命名再次运行rake db:migrate
希望有所帮助:)