Table of Contents
Use ducere
command
ducere make migration
ducere make migration createUsersTable
>> migrations/migration{datetime}createUsersTable.nim
and updated /migrations/migrate.nim
automatically.
To run migration, run migrate.nim
nim c -r migrations/migrate
You can also use ducere
command.
ducere migrate
mirations/migration20210410131239user.nim
import json, strformat
import allographer/schema_builder
import allographer/query_builder
proc migration20210410131239user*() =
schema(
table("auth", [
Column().increments("id"),
Column().string("auth")
], reset=true),
table("users", [
Column().increments("id"),
Column().string("name"),
Column().string("email"),
Column().foreign("auth_id").reference("id").on("auth").onDelete(SET_NULL),
Column().timestamps()
], reset=true)
)
rdb().table("auth").insert([
%*{"id": 1, "auth": "admin"},
%*{"id": 2, "auth": "user"},
])
var users: seq[JsonNode]
for i in 1..100:
users.add(%*{
"id": i,
"name": &"user{i}",
"email": &"user{i}@nim.com",
"auth_id": if i mod 2 == 0: 1 else: 2
})
rdb().table("users").insert(users)
echo rdb().table("users").get()
migrations/migrate.nim
import migration20210410131239user
proc main() =
discard
migration20210410131239user()
main()
More details of Schema Builder
and Query Builder
is in allographer documents.