Ruby on rails 如何使用mysql为rails应用程序向现有表添加新表/列?
我正在用MySQL在rails 5中开发一个只支持API的应用程序。我是否可以直接在MySQL数据库中向现有表或新表添加一个新列,而不是使用rail生成器(rails生成迁移添加\u email\u到\u用户email:string/rails生成模型用户) 如果是,如何为此创建迁移Ruby on rails 如何使用mysql为rails应用程序向现有表添加新表/列?,ruby-on-rails,ruby-on-rails-5,rails-api,Ruby On Rails,Ruby On Rails 5,Rails Api,我正在用MySQL在rails 5中开发一个只支持API的应用程序。我是否可以直接在MySQL数据库中向现有表或新表添加一个新列,而不是使用rail生成器(rails生成迁移添加\u email\u到\u用户email:string/rails生成模型用户) 如果是,如何为此创建迁移 You should do this by executing migrations. 但是,如果您想直接执行,那么可以在mysql中执行altertable语句 例如: ALTER TABLE users A
You should do this by executing migrations.
但是,如果您想直接执行,那么可以在mysql中执行altertable
语句
例如:
ALTER TABLE users
ADD email varchar(30);
您可以在rails控制台中执行此操作:
$ rails c
> ActiveRecord::Migration.add_column :users, :email, :string
这一定对您有帮助
statement = "Your SQL statement HERE"
然后执行SQL语句,如下所示:
ActiveRecord::Base.transaction do
connection.execute(statement)
end
尝试使用ALTER命令 例如:
ALTER TABLE contacts ADD email VARCHAR(60);
第一条语句将把email列添加到表的末尾。要在特定列(如名称)后插入新列,请使用以下语句:
ALTER TABLE contacts ADD email VARCHAR(60) AFTER name;
ALTER TABLE contacts ADD email VARCHAR(60) FIRST;
如果希望新列位于第一位,请使用以下语句:
ALTER TABLE contacts ADD email VARCHAR(60) AFTER name;
ALTER TABLE contacts ADD email VARCHAR(60) FIRST;
请接受适合您的答案@omaralhadid