2010-11-04 6 views
2

J'utilise Redmine et quand je lance une migration de rake db la base de données est créée dans mysql ok. Mon problème est que le champ date est faux. Je veux que ce soit un type timestamp mysql, mais à la place c'est un type DATETIME dans MySQL.Ruby/Rails - Migration Db d'enregistrement actif vers MySQL - Type d'horodatage?

class CreateChats < ActiveRecord::Migration 
    def self.up 
    create_table :chats do |t| 
     t.column :message, :string 
     t.column :user, :integer 
     t.column :sendDate, :timestamp 
    end 
    end 

    def self.down 
    drop_table :chats 
    end 
end 

En outre, si je fais un changement à cette migration comment puis-je à refaire la table (la suppression ne fonctionne pas)?

Répondre

3

Vous pouvez toujours insérer une colonne avec un type personnalisé si vous le souhaitez. Les noms de symboles sont automatiquement convertis en tout ActiveRecord définit, mais si vous utilisez une chaîne de caractères, il va dans tel quel:

t.column :ar_timestamp, :timestamp 
t.column :mysql_timestamp, 'timestamp' 

Ce que vous obtenez est ar_timestamp étant le type DATETIME habituel où mysql_timestamp est défini comme TIMESTAMP.

+0

Merci. Pour la migration, j'ai compris qu'il suffisait d'incrémenter la version de la migration dans le dossier db. –

+1

Si vous voulez réexécuter la migration, essayez 'db: migrate: redo' – tadman