rails generate migration AddRetweetsCountToTweet retweets_count:integer
Ok, eu uso a linha acima para criar um arquivo de migração que gera automaticamente o código no arquivo gerado para adicionar uma coluna a um modelo de Tweet com tipo de dados inteiro. Agora quero adicionar o valor padrão à coluna adicionada ao gerar o arquivo de migração. Isso é possível? Eu pesquisei, mas não consegui encontrar. Caras precisam de ajuda.
ruby-on-rails
migration
kxhitiz
fonte
fonte
Respostas:
O gerador de migração padrão não lida com valores padrão ( modificadores de coluna são suportados, mas não incluem
default
ounull
), mas você pode criar seu próprio gerador.Você também pode atualizar manualmente o arquivo de migração antes de executá-lo
rake db:migrate
, adicionando as opções aadd_column
:add_column :tweet, :retweets_count, :integer, :null => false, :default => 0
... e leia a API Rails
fonte
... Deveria trabalhar.
Veja o guia Rails sobre migrações
fonte
Sim, também não consegui ver como usar 'default' no comando do gerador de migração, mas fui capaz de especificar um valor padrão para uma nova coluna de string da seguinte forma, corrigindo o arquivo de migração gerado antes de aplicar "rake db: migrate":
Isso adiciona uma nova coluna chamada 'cor' ao meu modelo de 'Widget' e define a 'cor' padrão dos novos widgets como 'vermelho'.
fonte
Tentei t.boolean: active,: default => 1 no arquivo de migração para criar a tabela inteira. Depois de executar essa migração quando fiz o check-in do banco de dados, ele fez como nulo. Mesmo que eu tenha dito o padrão como "1". Depois disso, mudei um pouco o arquivo de migração como este, então funcionou para mim definir o valor padrão no arquivo de migração de tabela de criação.
t.boolean: ativo,: null => false,: default => 1. Funcionou para mim.
A versão do meu framework Rails é 4.0.0
fonte
:default => false
?Você teria que primeiro criar sua migração para os fundamentos do modelo e depois criar outra migração para modificar a anterior usando change_column ...
fonte