J'ai le problème, que j'ai une migration dans Rails qui configure un paramètre par défaut pour une colonne, comme cet exemple:
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
Supposons que j'aime supprimer ces paramètres par défaut lors d'une migration ultérieure, comment puis-je faire cela avec l'utilisation de migrations de rails?
Ma solution de contournement actuelle est l'exécution d'une commande sql personnalisée dans la migration des rails, comme ceci:
def self.up
execute 'alter table column_name alter bought_at drop default'
end
Mais je n'aime pas cette approche, car je dépend maintenant de la façon dont la base de données sous-jacente interprète cette commande. En cas de modification de la base de données, cette requête pourrait ne plus fonctionner et la migration serait interrompue. Alors, existe-t-il un moyen d'exprimer l'annulation d'un paramètre par défaut pour une colonne dans les rails?
CHARACTER VARYING
colonnes, définissez-la simplement surNULL::character varying
.