2016-05-14 12 views
1

私はミックスアプリに「ダミー」アプリを持っているので、最初のマイグレーションはtest/dummy/priv/repo/migrations/20160323060044_create_user.exsにあります。レポの非標準パスを使用してectoを実行

私はこの移行を実行しますが、11:19:20.647 [info] Already upを返します。これは私を失望させます。

は、ここに私のtest.exsです:

config :ecto_state_machine, Dummy.Repo, 
    adapter: Ecto.Adapters.Postgres, 
    username: System.get_env("USER"), 
    password: "posgtres", 
    database: "ecto_state_machine_test", 
    pool_size: 10, 
    port: 5432, 
    priv: "test/dummy/priv/repo/" 

はここに私の移行です:

defmodule Dummy.Repo.Migrations.CreateUser do 
    use Ecto.Migration 

    def change do 
    create table(:users) do 
     add :state, :string, null: false 
     add :confirmed_at, :datetime 

     timestamps 
    end 
    end 
end 

私は

MIX_ENV=test mix ecto.migrate -r Dummy.Repo 

を実行し、already up代わりに、移行の迷惑を取得しています。私は間違っているのですか?

私の試みは:

  1. 私は何も私の別のターンは、コードを必要とするようにした

  2. が起こっていない、削除してデータベースを再作成しようとしました。私はtest.exsまたはdev.exs私の中でこれを実装しようとしたが、私は、モジュールEcto.Migrationがロードされていないと私もMIX_ENV=test mix ecto.gen.migration f -r Dummy.Repoで偽の移行を作成しようとしました

    "test/dummy/priv/repo/migrations" |> Path.join("**/*.exs") |> Path.wildcard |> Enum.map(&Code.require_file/1)

  3. 見つかりませんでした `受け、それを埋めます例外を発生させ、そしてよりコードで私は

MIX_ENV=test mix ecto.migrate -r Dummy.Repo # => 12:49:00.932 [info] Already up

だから、それがレポを見つけることができませんでした。悲しい、しかし

  1. Iはまた、その後Mix.Task.run "ecto.migrate" ["-r", "Dummy.Repo"]次いで、第2のアプローチからのコードを呼び出し、シェルMIX_ENV=testをロードしようとしました。それは戻った:私にnoop?

  2. Githubの問題:https://github.com/elixir-lang/ecto/issues/1428

+0

あなたは 'ミックスecto.gen.migrationのcreate_user'を使用して、移行を作成したことがありますか?これは、Ectoがそれを読むことができるところに常にトランザクションを置くべきです。 – tkowal

+0

はい、私はそれをしました。 3番目のアプローチを見てください – asiniy

+0

うわー、私は何時間も何時間もこれを扱ってきました。私は最終的にそれを 'priv'の側面に絞ったので(結果的にトラブルシューティングが行われました)、私はまったく同じ問題のあなたのポストを見つけました! 'ecto.gen.migration'コマンドが機能するならば、' ecto.migrate'コマンドも動作するはずです! – ibgib

答えて

0

ホセValimはat githubコメント:

This is fixed in Ecto 2.0.0-rc. In previous versions, migrations would always have to be inside priv. We have removed this requirement in Ecto 2.0. 
関連する問題