首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行ecto迁移时出错

运行ecto迁移时出错
EN

Stack Overflow用户
提问于 2016-04-23 12:33:18
回答 1查看 2.4K关注 0票数 2

我是处方药和凤凰城的新人。我试图用mix ecto.migrate运行少数迁移文件的迁移,但是它引发了这个错误,

代码语言:javascript
复制
18:27:24.471 [info]  == Running FatLobster.Repo.Migrations.CreateRecipeTable.change/0 forward
** (Ecto.MigrationError) cannot execute command outside of block
    (ecto) lib/ecto/migration/runner.ex:139: Ecto.Migration.Runner.subcommand/1
    _build/dev/lib/fat_lobster/priv/repo/migrations/20160423115340_create_recipe_table.exs:5: FatLobster.Repo.Migrations.CreateRecipeTable.change/0
    (stdlib) timer.erl:197: :timer.tc/3
    (ecto) lib/ecto/migration/runner.ex:25: Ecto.Migration.Runner.run/6
    (ecto) lib/ecto/migrator.ex:121: Ecto.Migrator.attempt/6
    (ecto) lib/ecto/migrator.ex:71: anonymous fn/4 in Ecto.Migrator.do_up/4
    (ecto) lib/ecto/pool.ex:292: Ecto.Pool.with_rollback/3
    (ecto) lib/ecto/adapters/sql.ex:582: Ecto.Adapters.SQL.transaction/8
    (ecto) lib/ecto/pool.ex:244: Ecto.Pool.outer_transaction/6
    (ecto) lib/ecto/adapters/sql.ex:551: Ecto.Adapters.SQL.transaction/3
    (ecto) lib/ecto/migrator.ex:226: anonymous fn/4 in Ecto.Migrator.migrate/4
    (elixir) lib/enum.ex:1088: Enum."-map/2-lists^map/1-0-"/2
    (ecto) lib/mix/tasks/ecto.migrate.ex:63: anonymous fn/4 in Mix.Tasks.Ecto.Migrate.run/2
    (elixir) lib/enum.ex:604: Enum."-each/2-lists^foreach/1-0-"/2
    (elixir) lib/enum.ex:604: Enum.each/2
    (mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2
    (elixir) lib/code.ex:363: Code.require_file/2

这是移民,

代码语言:javascript
复制
defmodule FatLobster.Repo.Migrations.CreateRecipeTable do
  use Ecto.Migration

  def change do
    add :recipe_title, :string
    add :recipe_description,  :string

    add :cover_img, :string
    add :picture_one, :string
    add :picture_two, :string
    add :picture_three, :string

    add :user_id, :integer
    add :upvote_count, :integer
    add :downvote_count, :integer

    timestamps
  end
end

现在,这里到底出了什么问题?我到底错过了什么?我应该找些特别的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-23 14:21:58

您缺少了create table(...)块:

代码语言:javascript
复制
defmodule FatLobster.Repo.Migrations.CreateRecipeTable do
    use Ecto.Migration

    def change do
        create table(:recipes) do
            add :recipe_title, :string
            add :recipe_description,  :text
            add :cover_img, :string
            add :picture_one, :string
            add :picture_two, :string
            add :picture_three, :string

            add :user_id, :integer
            add :upvote_count, :integer
            add :downvote_count, :integer

            timestamps
        end
    end
end

更多信息在这里:https://hexdocs.pm/ecto/Ecto.Migration.html#create/1

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36810881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档