Mysql 需要不可移植SQL的Rails迁移
我有一个表,它最初是用一列的默认值定义的。我需要更改或删除默认设置Mysql 需要不可移植SQL的Rails迁移,mysql,ruby-on-rails,sqlite,ruby-on-rails-4,Mysql,Ruby On Rails,Sqlite,Ruby On Rails 4,我有一个表,它最初是用一列的默认值定义的。我需要更改或删除默认设置 似乎(通过它的沉默)表明,ActiveRecord::Migration并未包装此更改以实现可移植性 似乎说所需的SQL在MySQL和SQLite(我的两个DBs)之间是不可移植的 如果我误读了其中任何一个,那么纠正我就足够了。否则: 在ActiveRecord::Migration#up例程中,如何编写对底层数据库敏感的execute调用?例如,我可以查看config/database.yml中的活动值吗 当前表def
- 似乎(通过它的沉默)表明,
并未包装此更改以实现可移植性ActiveRecord::Migration
- 似乎说所需的SQL在MySQL和SQLite(我的两个DBs)之间是不可移植的
- 在
例程中,如何编写对底层数据库敏感的ActiveRecord::Migration#up
调用?例如,我可以查看execute
中的活动值吗config/database.yml
db/schema.rb
)为:
谢谢,布拉德·沃思:;你是对的,这实际上是一场骗局 ActiveRecord::Migration#change _列成功了。具体来说,我的迁移脚本是:
class DeslashifyUrlComponentsInApi < ActiveRecord::Migration
def up
change_column :apis, :resource_root, :string, default: "v1", null: false
end
def down
change_column :apis, :resource_root, :string, default: "/v1", null: false
end
end
class DeslashfiUrlComponentsInAPI
您的专栏有哪些规格?可能重复
class DeslashifyUrlComponentsInApi < ActiveRecord::Migration
def up
change_column :apis, :resource_root, :string, default: "v1", null: false
end
def down
change_column :apis, :resource_root, :string, default: "/v1", null: false
end
end