mirror of https://github.com/louislam/uptime-kuma
				
				
				
			
				
					
						
							
						
					
				
			 | 
			||
|---|---|---|
| .. | ||
| 2023-08-16-0000-create-uptime.js | ||
| 2023-08-18-0301-heartbeat.js | ||
| 2023-09-29-0000-heartbeat-retires.js | ||
| 2023-10-08-0000-mqtt-query.js | ||
| 2023-10-11-1915-push-token-to-32.js | ||
| 2023-10-16-0000-create-remote-browsers.js | ||
| 2023-12-21-0000-stat-ping-min-max.js | ||
| 2023-12-22-0000-hourly-uptime.js | ||
| 2024-01-22-0000-stats-extras.js | ||
| 2024-04-26-0000-snmp-monitor.js | ||
| README.md | ||
		
			
				
				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