Ruby on rails 如何使用mysql为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

我正在用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
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