无法在 rails 5 上回滚 ruby 中的数据库迁移
can't rollback database migration in ruby on rails 5
enter image description here我有两次迁移!第一个创建 table 第二个修改它!但是当我尝试将其回滚时它不起作用!!我已经尝试 运行 db:drop、创建、迁移,db:reset 它迁移了所有内容,但回滚仍然不起作用
第一次迁移:
class CreateUsers < ActiveRecord::Migration[5.0]
def up
create_table :users do |t|
t.string "first_name", :limit => 25
t.string "last_name", :limit => 50
t.string "email", :default => '', :null => false
t.string "password", :limit => 40
t.timestamps
end
end
def down
drop_table :users
end
end
2nd migration:
class AlterUsers < ActiveRecord::Migration[5.0]
def up
rename_table("users", "admin_users")
add_column('admin_users', 'username', :string, :limit => 25,
:after => 'email')
change_column('admin_users', 'email', :string, :limit => 100 )
rename_column('admin_users', 'password', 'hashed_password' )
add_index("admin_users", "username")
end
def down
remove_index('admin_users', 'username')
rename_column('admin_users', 'hashed_password', 'password')
change_column('admin_users', 'email', :string, :default => '',
:null => false)
remove_column('admin_users', 'username')
rename_column('admin_users', 'users')
end
end
enter image description here
羽绒不应该
rename_column('admin_users', 'users')
应该是
rename_table('admin_users', 'users')
enter image description here我有两次迁移!第一个创建 table 第二个修改它!但是当我尝试将其回滚时它不起作用!!我已经尝试 运行 db:drop、创建、迁移,db:reset 它迁移了所有内容,但回滚仍然不起作用
第一次迁移:
class CreateUsers < ActiveRecord::Migration[5.0]
def up
create_table :users do |t|
t.string "first_name", :limit => 25
t.string "last_name", :limit => 50
t.string "email", :default => '', :null => false
t.string "password", :limit => 40
t.timestamps
end
end
def down
drop_table :users
end
end
2nd migration:
class AlterUsers < ActiveRecord::Migration[5.0]
def up
rename_table("users", "admin_users")
add_column('admin_users', 'username', :string, :limit => 25,
:after => 'email')
change_column('admin_users', 'email', :string, :limit => 100 )
rename_column('admin_users', 'password', 'hashed_password' )
add_index("admin_users", "username")
end
def down
remove_index('admin_users', 'username')
rename_column('admin_users', 'hashed_password', 'password')
change_column('admin_users', 'email', :string, :default => '',
:null => false)
remove_column('admin_users', 'username')
rename_column('admin_users', 'users')
end
end
enter image description here
羽绒不应该
rename_column('admin_users', 'users')
应该是
rename_table('admin_users', 'users')