You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
866 B
25 lines
866 B
2 years ago
|
exports.up = async (knex) => {
|
||
|
// using async/await lets you work with multiple tables in one up/down
|
||
|
await knex.schema.createTable('livestream', (table) => {
|
||
|
table.increments('id');
|
||
|
table.timestamps(true, true);
|
||
|
|
||
|
table.string("title").notNullable();
|
||
|
table.text("description").notNullable();
|
||
|
table.string('poster');
|
||
|
table.string("source");
|
||
|
table.datetime("starts_on").notNullable();
|
||
|
table.boolean('is_free').defaultTo(false).notNullable();
|
||
|
|
||
|
// only four states really needed in most payment systems
|
||
|
table.enum('state', ['pending', 'live', 'finished', 'archived']).notNull().default('pending');
|
||
|
});
|
||
|
|
||
|
// because this is an async it'll automatically be a promise for knex
|
||
|
// add any other tables here with an await, no need to return
|
||
|
};
|
||
|
|
||
|
exports.down = async (knex) => {
|
||
|
await knex.schema.dropTable('livestream');
|
||
|
};
|