Ecto.migrate 创建数据库模式

Ecto.migrate create database schema

我刚刚开始使用 Elixir/Phoenix 和 Ecto 迁移。我找不到使用迁移创建 Postgres 数据库模式的方法。在不久的将来,我的数据库将需要多达 4 个不同的模式。我的意思是这样做,但创建一个模式而不是 table。我不确定是否可以做到,但如果可以,怎么做?谢谢

  def change do
    create table(:people) do
      ...
    end
  end

Ecto.Migration.execute/1 函数正是您要找的。您可以使用它来执行任意 SQL 命令,例如创建用户、模式或向数据库添加扩展。

defmodule Example.Migrations.MakeSchema do
  use Ecto.Migration

  execute "CREATE SCHEMA example"
end