simplex2/applications/users/migrations.moon

67 lines
2.3 KiB
Plaintext
Raw Normal View History

db = require "lapis.db"
import create_table, types, add_column, rename_column, create_index, drop_index from require "lapis.db.schema"
{
[1]: =>
create_table "users", {
{"id", types.serial primary_key: true}
{"name", types.varchar unique: true}
{"email", types.text unique: true}
{"digest", types.text}
{"admin", types.boolean default: false}
{"created_at", types.time}
{"updated_at", types.time}
}
create_table "sessions", {
{"user_id", types.foreign_key}
{"created_at", types.time}
{"updated_at", types.time}
}
[1518430372]: =>
add_column "sessions", "id", types.serial primary_key: true
rename_column "sessions", "created_at", "opened_at"
rename_column "sessions", "updated_at", "closed_at"
create_index "users", "id", unique: true
create_index "users", "name", unique: true
create_index "users", "email", unique: true
create_index "sessions", "id", unique: true
[1518968812]: =>
import autoload from require "locator"
import settings from autoload "utility"
settings["users.allow-sign-up"] = true
settings["users.allow-name-change"] = true
settings["users.admin-only-mode"] = false
settings["users.require-email"] = true
settings["users.require-unique-email"] = true
settings["users.allow-email-change"] = true
settings["users.session-timeout"] = 60 * 60 * 24 -- default is one day
settings["users.minimum-password-length"] = 12
settings["users.maximum-character-repetition"] = 6
settings["users.bcrypt-digest-rounds"] = 12
-- settings["users.password-check-fn"] = nil -- should return true if passes, falsy and error message if fails
settings.save!
drop_index "users", "email" -- replacing because it was a unique index
db.query "ALTER TABLE users DROP CONSTRAINT users_email_key"
create_index "users", "email"
[1519416945]: =>
import autoload from require "locator"
import settings from autoload "utility"
settings["users.require-recaptcha"] = false -- protect against bots for sign-up (default off because it requires set-up)
-- settings["users.recaptcha-sitekey"] = nil -- provided by admin panel
-- settings["users.recaptcha-secret"] = nil -- provided by admin panel
settings.save!
-- NOTE may need to run a migration to allow null emails ?
}