3 votes

Rails 3, changer le champ dans le modèle de chaîne à un type datetime

Lors de la création de mon modèle, j'ai défini le type de la rangée comme une chaîne de caractères (je n'étais pas au courant de datetime à ce moment-là). Actuellement, j'ai beaucoup d'enregistrements qui ont cette rangée remplie. Y a-t-il un moyen sûr de convertir la rangée du modèle en datetime via une migration - à part simplement la supprimer, puis la rajouter?

Merci!

7voto

gicappa Points 3779

Conformément à la documentation, voici un exemple de migration qui transforme une chaîne en datetime. Je ne suis pas sûr que cela fonctionnera, donc vous voudrez peut-être l'essayer sur un environnement de développement/validation avant de passer à l'environnement de production.

class ChangeColumnToUsers < ActiveRecord::Migration
  def self.up
    change_column :users, :created_at, :datetime
  end

  def self.down
    change_column :users, :created_at, :string
  end
end

3voto

Jed Schneider Points 6253

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X