【问题标题】:Generating a migration with custom SQL code in Phoenix在 Phoenix 中使用自定义 SQL 代码生成迁移
【发布时间】:2017-03-31 21:57:28
【问题描述】:

我想使用自定义 SQL 代码生成新的 Ecto 迁移,而不是使用提供的帮助程序。当前的mix 生成器任务仅处理模型。

如何在迁移中编写原始 SQL 代码?

【问题讨论】:

    标签: sql elixir phoenix-framework ecto


    【解决方案1】:

    首先使用提供的 Mix Task 创建一个新的迁移,然后随意调用它:

    $ mix ecto.gen.migration my_custom_migration
    

    现在编辑priv/repo/migrations/ 中新生成的迁移模块,并将空的change 方法替换为updown 方法。

    然后您可以在其中使用原始SQL 代码调用execute/1

    defmodule MyApp.Repo.Migrations.MyCustomMigration do
      use Ecto.Migration
    
      def up do
        # Your custom SQL code
        execute "CREATE TABLE some_table ..."
      end
    
      def down do
        execute "DROP TABLE some_table;"
      end
    end
    

    来源:Execute Raw SQL In An Ecto Migration

    【讨论】:

      猜你喜欢
      • 2018-08-24
      • 1970-01-01
      • 2016-09-23
      • 2014-12-22
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      相关资源
      最近更新 更多