如何使用mysql为rails应用程序添加新表/列到现有表?

时间:2017-03-20 14:38:23

标签: ruby-on-rails ruby-on-rails-5 rails-api

我正在使用MySQL在rails 5中开发一个仅API应用程序。我可以直接在MySQL数据库中添加新列到现有表或新表而不是使用轨道生成器(rails生成迁移add_email_to_users email:string / rails generate model User)?

如果是,如何为此创建迁移?

4 个答案:

答案 0 :(得分:1)

尝试使用ALTER命令

示例:

ALTER TABLE contacts ADD email VARCHAR(60);

此第一个语句会将电子邮件列添加到表的末尾。要在特定列(例如name)之后插入新列,请使用以下语句:

ALTER TABLE contacts ADD email VARCHAR(60) AFTER name;

如果您希望新列首先使用此语句:

ALTER TABLE contacts ADD email VARCHAR(60) FIRST;

答案 1 :(得分:0)

You should do this by executing migrations. 

但是,如果你想直接,那么你可以在mysql中执行alter table语句。

例如:

ALTER TABLE users
ADD email varchar(30);

答案 2 :(得分:0)

您可以在rails控制台中执行此操作:

$ rails c
> ActiveRecord::Migration.add_column :users, :email, :string

答案 3 :(得分:0)

这必须帮助您

statement = "Your SQL statement HERE"

然后执行您的SQL语句:

 ActiveRecord::Base.transaction do
     connection.execute(statement)
end