2017-03-20 1 views
0

Je développe une application API uniquement dans les rails 5 avec MySQL. Puis-je ajouter une nouvelle colonne à une table existante ou une nouvelle table directement dans la base de données MySQL au lieu d'utiliser un générateur de rail (les rails génèrent la migration add_email_to_users email: string/rails génère le modèle User)?Comment ajouter une nouvelle table/colonne à une table existante en utilisant mysql pour une application rails?

Si oui, comment créer une migration pour cela?

+0

S'il vous plaît accepter la réponse que travaille pour vous @OmarAlhadidy https://meta.stackexchange.com/a/5235 – Developer66

Répondre

0
You should do this by executing migrations. 

Mais, si vous voulez directement, vous pouvez exécuter l'instruction alter table dans le mysql.

Par exemple:

ALTER TABLE users 
ADD email varchar(30); 
0

Vous pouvez le faire dans la console rails:

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

Ce doit vous aider à

statement = "Your SQL statement HERE" 

Ensuite, exécutez l'instruction SQL comme:

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

Essayez d'utiliser la commande ALTER

Exemple:

ALTER TABLE contacts ADD email VARCHAR(60); 

Cette première déclaration ajoutera la colonne de courrier électronique à la fin de la table. Pour insérer la nouvelle colonne après une colonne spécifique, comme le nom, utilisez cette déclaration:

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

Si vous voulez que la nouvelle colonne pour être le premier, utilisez cette déclaration:

ALTER TABLE contacts ADD email VARCHAR(60) FIRST;