• README.md
  • 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