2017-12-06 12 views
0

に移行を生成できませんは、私はフェニックスのフレームワークを学ぶために始めた、私の移行を作成しようとすると、いくつかの問題を持つことが、ここに私のスキーマがある鳳凰

def change do 
    create table(:users) do 
     add :name, :string 
     add :username, :string 
     add :email, :string 
     add :password, :string 
     add :password_hash, :string 

     timestamps() 
    end 
    end 
:このような何か:それは何かのようにあるべきとき

defmodule Lclp.Repo.Migrations.UserAdd do 
    use Ecto.Migration 

    def change do 

    end 
end 

変更機能は空です私のユーザーのスキーマは、ここに表示されているように、repo.exのメインフォルダにあります。 enter image description here

なぜジェネレータで空のマイグレーションが発生するのでしょうか?

+0

移行を生成するためにどのようなコマンドを使用していますか?また、 ':password'フィールドは仮想であるため、マイグレーションには含めるべきではありません。 –

+0

私は 'mix ecto.gen.migration create_user'を使っています。 ':password'を削除します。ありがとうございます。 –

+1

代わりに['phx.gen.schema'](https://hexdocs.pm/phoenix/Mix.Tasks.Phx.Gen.Schema.html)を見たいと思うでしょう。 'ecto.gen.migration'はあなたのコードに基づいて移行を作成しようとしません。これは、移行ファイルのみを作成します。 –

答えて

3

代わりにphx.gen.schemaを見たいと思うでしょう。 ecto.gen.migrationは、コードを見て実際の移行を構築しようとしません。足場ファイルを生成するだけです。

関連する問題