1
0
mirror of https://github.com/louislam/uptime-kuma.git synced 2025-01-26 03:52:28 +02:00
uptime-kuma/db/knex_migrations
Dan Sullivan dc3ad88fe1
Some checks failed
Auto Test / check-linters (push) Failing after 55s
Auto Test / auto-test (18, ARM64) (push) Has been skipped
Auto Test / auto-test (18, macos-latest) (push) Has been skipped
Auto Test / auto-test (18, ubuntu-latest) (push) Has been skipped
Auto Test / auto-test (18, windows-latest) (push) Has been skipped
Auto Test / auto-test (20.5, ARM64) (push) Has been skipped
Auto Test / auto-test (20.5, macos-latest) (push) Has been skipped
Auto Test / auto-test (20.5, ubuntu-latest) (push) Has been skipped
Auto Test / auto-test (20.5, windows-latest) (push) Has been skipped
Auto Test / armv7-simple-test (18, ARMv7) (push) Has been skipped
Auto Test / armv7-simple-test (20, ARMv7) (push) Has been skipped
Auto Test / e2e-test (push) Has been skipped
CodeQL / Analyze (go) (push) Failing after 1m2s
CodeQL / Analyze (javascript-typescript) (push) Failing after 22s
Merge Conflict Labeler / Labeling (push) Has been skipped
json-yaml-validate / json-yaml-validate (push) Successful in 8s
Automatically close stale issues / stale (push) Successful in 14s
Add option to pass cache bust param (#3525)
Co-authored-by: Dan Sullivan <dan@symbiosgroup.co.uk>
Co-authored-by: Frank Elsinga <frank@elsinga.de>
2024-08-24 22:57:31 +02:00
..

Info

https://knexjs.org/guide/migrations.html#knexfile-in-other-languages

Basic rules

  • All tables must have a primary key named id
  • Filename format: YYYY-MM-DD-HHMM-patch-name.js
  • Avoid native SQL syntax, use knex methods, because Uptime Kuma supports SQLite and MariaDB.

Template

exports.up = function(knex) {

};

exports.down = function(knex) {

};

// exports.config = { transaction: false };

Example

Filename: 2023-06-30-1348-create-user-and-product.js

exports.up = function(knex) {
  return knex.schema
    .createTable('user', function (table) {
        table.increments('id');
        table.string('first_name', 255).notNullable();
        table.string('last_name', 255).notNullable();
    })
    .createTable('product', function (table) {
        table.increments('id');
        table.decimal('price').notNullable();
        table.string('name', 1000).notNullable();
    }).then(() => {
        knex("products").insert([
            { price: 10, name: "Apple" },
            { price: 20, name: "Orange" },
        ]);
    });
};

exports.down = function(knex) {
  return knex.schema
      .dropTable("product")
      .dropTable("user");
};

https://knexjs.org/guide/migrations.html#transactions-in-migrations