This repository has been archived on 2018-10-12. You can view files and clone it, but cannot push or open issues or pull requests.
ProgBlog/app/migration_helpers.js

54 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-02-24 14:01:10 -05:00
'use strict';
/**
* Migration helper methods
* @type {Object}
*/
module.exports = {
getDbType(knex) {
switch (knex.client.config.client) {
2016-02-24 14:01:10 -05:00
case 'postgresql':
case 'postgres':
case 'pg':
return 'pg';
default:
return knex.client.config.client;
}
},
pgTimestampUpdateFunction() {
2016-02-24 14:01:10 -05:00
return `CREATE OR REPLACE FUNCTION progblog_update_modified_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = now();
RETURN NEW;
2016-02-24 14:01:10 -05:00
END;
$$ language 'plpgsql';`;
},
pgCreateTimestampUpdateTrigger(table) {
2016-02-24 14:01:10 -05:00
return `CREATE TRIGGER update_${table}_modtime
BEFORE UPDATE ON "${table}"
FOR EACH ROW
EXECUTE PROCEDURE progblog_update_modified_column();`;
},
pgDeleteTimestampUpdateTrigger(table) {
2016-02-24 14:01:10 -05:00
return `DROP TRIGGER IF EXISTS update_${table}_modtime ON "${table}";`;
},
sqlite3CreateTimestampUpdateTrigger(table) {
2016-02-24 14:01:10 -05:00
return `CREATE TRIGGER IF NOT EXISTS [UpdateModified]
BEFORE UPDATE ON "${table}"
FOR EACH ROW
BEGIN
UPDATE "${table}" SET updated_at = CURRENT_TIMESTAMP WHERE id = old.id;
END`;
},
sqlite3DeleteTimestampUpdateTrigger() {
2016-02-24 14:01:10 -05:00
return `DROP TRIGGER IF EXISTS [UpdateModified]`;
2016-02-24 14:09:22 -05:00
},
2016-02-24 14:01:10 -05:00
};