Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

db migrator

livemigrator.livemd

db migrator

Mix.install([
  {:ecto, "~> 3.10"},
  {:ecto_sql, "~> 3.10"},
  {:postgrex, "~> 0.17.3"},
  {:kino, "~> 0.11.0"},
  {:kino_db, "~> 0.2.4"}
])

Section

opts = [
  hostname: "localhost",
  port: 5432,
  username: "kuku",
  password: "",
  database: "adventureworks"
]

{:ok, conn} = Kino.start_child({Postgrex, opts})
defmodule Repo do
  use Ecto.Repo, otp_app: :migrator, adapter: Ecto.Adapters.Postgres
end
defmodule Migrator.Schemas.Person do
  use Ecto.Schema
  @schema_prefix "person"
  @primary_key false
  schema "person" do
    field(:first_name, :string)
    field(:last_name, :string)
  end
end

Kino.start_child({Repo, url: "postgres://kuku@localhost/adventureworks"})

Migrator.Schemas.Person
|> Repo.all()
|> Kino.DataTable.new()
result = Postgrex.query!(conn, "select * from person.person limit 100", [])