Files
artdanj-api/database/migrations/1625078903131_users.ts
2021-11-10 12:06:58 +01:00

40 lines
1.2 KiB
TypeScript

import BaseSchema from '@ioc:Adonis/Lucid/Schema'
import Hash from '@ioc:Adonis/Core/Hash'
export default class Users extends BaseSchema {
protected tableName = 'users'
public async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.string('username', 255).notNullable()
table.string('email', 255).notNullable()
table
.string('password', 180)
.defaultTo(this.randomPassword())
.notNullable()
table.boolean('is_confirmed').defaultTo(false).notNullable()
table.string('remember_me_token').defaultTo(null).nullable()
table.string('confirmation_token').defaultTo(null).nullable()
table.timestamps(true, true)
})
}
public async down() {
this.schema.dropTable(this.tableName)
}
private randomPassword(): string {
let password = ''
const char = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!.:=+-_$*^&@#%ù/àçè()é"'
const size = 64
for (let i = 0; i < size; i++)
password += char.charAt(Math.random() * char.length)
Hash.make(password).then((value) => {
password = value
})
return password
}
}