0
0
mirror of https://github.com/louislam/uptime-kuma.git synced 2024-11-22 11:47:30 +01:00
uptime-kuma/db/knex_migrations/README.md

57 lines
1.2 KiB
Markdown
Raw Normal View History

2023-10-02 23:48:21 +02:00
# Info
2023-02-11 15:21:06 +01:00
https://knexjs.org/guide/migrations.html#knexfile-in-other-languages
## Basic rules
2023-10-02 23:48:21 +02:00
- All tables must have a primary key named `id`
2023-10-02 23:48:21 +02:00
- Filename format: `YYYY-MM-DD-HHMM-patch-name.js`
- Avoid native SQL syntax, use knex methods, because Uptime Kuma supports SQLite and MariaDB.
2023-02-11 15:21:06 +01:00
## Template
```js
exports.up = function(knex) {
};
exports.down = function(knex) {
};
// exports.config = { transaction: false };
```
## Example
Filename: 2023-06-30-1348-create-user-and-product.js
2023-02-11 15:21:06 +01:00
```js
exports.up = function(knex) {
return knex.schema
.createTable('user', function (table) {
2023-02-11 15:21:06 +01:00
table.increments('id');
table.string('first_name', 255).notNullable();
table.string('last_name', 255).notNullable();
})
.createTable('product', function (table) {
2023-02-11 15:21:06 +01:00
table.increments('id');
table.decimal('price').notNullable();
table.string('name', 1000).notNullable();
2023-06-30 20:48:42 +02:00
}).then(() => {
knex("products").insert([
{ price: 10, name: "Apple" },
{ price: 20, name: "Orange" },
]);
2023-02-11 15:21:06 +01:00
});
};
exports.down = function(knex) {
return knex.schema
.dropTable("product")
.dropTable("user");
2023-02-11 15:21:06 +01:00
};
```
2023-06-30 11:26:37 +02:00
https://knexjs.org/guide/migrations.html#transactions-in-migrations