33 lines
1.1 KiB
Lua
33 lines
1.1 KiB
Lua
local db = require("lapis.db")
|
|
local schema = require("lapis.db.schema")
|
|
local types = schema.types
|
|
|
|
return {
|
|
[1] = function ()
|
|
schema.create_table("sessions", {
|
|
{"id", types.integer{primary_key = true}},
|
|
{"key", types.text{unique = true}},
|
|
{"user_id", "INTEGER REFERENCES users(id) ON DELETE CASCADE"},
|
|
{"expires_at", types.integer},
|
|
{"created_at", "INTEGER DEFAULT (unixepoch(CURRENT_TIMESTAMP))"},
|
|
})
|
|
|
|
db.query("CREATE INDEX sessions_user_id ON sessions(user_id)")
|
|
db.query("CREATE INDEX session_keys ON sessions(key)")
|
|
end,
|
|
|
|
[2] = function ()
|
|
schema.add_column("users", "confirmed_on", types.integer{null = true})
|
|
end,
|
|
|
|
[3] = function ()
|
|
schema.add_column("users", "status", types.text{null = true, default=""})
|
|
schema.create_table("avatars", {
|
|
{"id", types.integer{primary_key = true}},
|
|
{"file_path", types.text{unique = true}},
|
|
{"uploaded_at", "INTEGER DEFAULT (unixepoch(CURRENT_TIMESTAMP))"},
|
|
})
|
|
schema.add_column("users", "avatar_id", "REFERENCES avatars(id) ON DELETE SET NULL")
|
|
end,
|
|
}
|