uptime-kuma/db/knex_migrations
Shaun 36f8be040d
Some checks are pending
Auto Test / auto-test (18, ARM64) (push) Blocked by required conditions
Auto Test / auto-test (18, macos-latest) (push) Blocked by required conditions
Auto Test / auto-test (18, ubuntu-latest) (push) Blocked by required conditions
Auto Test / auto-test (18, windows-latest) (push) Blocked by required conditions
Auto Test / auto-test (20.5, ARM64) (push) Blocked by required conditions
Auto Test / auto-test (20.5, macos-latest) (push) Blocked by required conditions
Auto Test / auto-test (20.5, ubuntu-latest) (push) Blocked by required conditions
Auto Test / auto-test (20.5, windows-latest) (push) Blocked by required conditions
Auto Test / armv7-simple-test (18, ARMv7) (push) Blocked by required conditions
Auto Test / armv7-simple-test (20, ARMv7) (push) Blocked by required conditions
Auto Test / check-linters (push) Waiting to run
Auto Test / e2e-test (push) Blocked by required conditions
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
json-yaml-validate / json-yaml-validate (push) Waiting to run
Monitor Conditions (#5048)
2024-08-30 21:48:13 +02:00
..
2023-08-16-0000-create-uptime.js Uptime calculation improvement and 1-year uptime (#2750) 2023-09-01 05:19:21 +08:00
2023-08-18-0301-heartbeat.js Uptime calculation improvement and 1-year uptime (#2750) 2023-09-01 05:19:21 +08:00
2023-09-29-0000-heartbeat-retires.js Feat: Retries persistence (#3814) 2023-11-24 18:11:36 +08:00
2023-10-08-0000-mqtt-query.js Feat: Add json-query to MQTT monitor type (#3857) 2023-12-03 01:36:19 +08:00
2023-10-11-1915-push-token-to-32.js push monitor: increase token security (#912) 2023-10-11 19:28:06 +08:00
2023-10-16-0000-create-remote-browsers.js Feature: remote browser support (#3904) 2023-12-01 15:29:10 +08:00
2023-12-20-0000-alter-status-page.js Make auto refresh interval customizable (#4260) 2024-05-19 21:56:55 +02:00
2023-12-21-0000-stat-ping-min-max.js Feat: Add stat_hourly & min. max. ping (#4267) 2024-01-05 20:42:24 +08:00
2023-12-22-0000-hourly-uptime.js Feat: Add stat_hourly & min. max. ping (#4267) 2024-01-05 20:42:24 +08:00
2024-01-22-0000-stats-extras.js Feat: Handle maintenance in UptimeCalculator (#4406) 2024-03-27 10:19:25 +08:00
2024-04-26-0000-snmp-monitor.js Update 2024-04-26-0000-snmp-monitor.js 2024-06-10 16:15:12 -06:00
2024-08-24-000-add-cache-bust.js Add option to pass cache bust param (#3525) 2024-08-24 22:57:31 +02:00
2024-08-24-0000-conditions.js Monitor Conditions (#5048) 2024-08-30 21:48:13 +02:00
README.md Fix few markdownlint warnings (#3825) 2023-10-03 05:48:21 +08: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