• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Fdawgs / ydh-myydh-crud-api / 4417510579

pending completion
4417510579

push

github

GitHub
chore(main): release 11.0.7 (#1221)

259 of 259 branches covered (100.0%)

Branch coverage included in aggregate %.

527 of 527 relevant lines covered (100.0%)

14.21 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/src/migrate.js
1
/* eslint-disable no-console */
2
const mssql = require("mssql");
1✔
3
const path = require("upath");
1✔
4
const pg = require("pg");
1✔
5
const pgParse = require("pg-connection-string").parse;
1✔
6
const Postgrator = require("postgrator");
1✔
7
const getConfig = require("./config");
1✔
8

9
/**
10
 * @author Frazer Smith
11
 * @description Run Postgrator to execute SQL queries in ../migrations/** directories.
12
 */
13
async function migrate() {
14
        let client;
15
        let db;
16
        let postgrator;
17

18
        try {
4✔
19
                const { database } = await getConfig();
4✔
20

21
                db = database.client.toLowerCase();
4✔
22

23
                switch (db) {
4✔
24
                        case "postgresql":
25
                                client = new pg.Client(database.connection);
2✔
26
                                postgrator = new Postgrator({
2✔
27
                                        migrationPattern: path.join(
28
                                                __dirname,
29
                                                "../migrations/postgres/*"
30
                                        ),
31
                                        driver: "pg",
32
                                        database: pgParse(database.connection).database,
33
                                        execQuery: /* istanbul ignore next */ (query) =>
34
                                                client.query(query),
35
                                });
36
                                break;
2✔
37

38
                        case "mssql":
39
                        default:
40
                                client = new mssql.ConnectionPool(database.connection);
2✔
41
                                postgrator = new Postgrator({
2✔
42
                                        migrationPattern: path.join(
43
                                                __dirname,
44
                                                "../migrations/mssql/*"
45
                                        ),
46
                                        driver: "mssql",
47
                                        database: client.config.database,
48
                                        execQuery: /* istanbul ignore next */ async (query) => {
49
                                                const request = new mssql.Request(client);
50
                                                const result = await request.batch(query);
51

52
                                                return {
53
                                                        rows: result?.recordset ? result.recordset : result,
54
                                                };
55
                                        },
56
                                });
57
                                break;
2✔
58
                }
59

60
                await client.connect();
4✔
61

62
                // Migrate to latest version
63
                const migrationResult = await postgrator.migrate();
4✔
64

65
                /* istanbul ignore else */
66
                if (migrationResult.length === 0) {
2✔
67
                        console.log("No migrations run, already on latest schema version");
2✔
68
                }
69

70
                console.log("Migration complete");
2✔
71
        } catch (err) {
72
                console.error(err);
2✔
73
                process.exitCode = 1;
2✔
74
        } finally {
75
                // Close the DB connection
76
                switch (db) {
4✔
77
                        case "postgresql":
78
                                await client.end();
2✔
79
                                break;
2✔
80

81
                        case "mssql":
82
                        default:
83
                                await client.close();
2✔
84
                                break;
2✔
85
                }
86
        }
87
}
88

89
// If file called directly, then run function
90
/* istanbul ignore if */
91
if (require.main === module) {
1✔
92
        migrate();
93
}
94

95
module.exports = migrate;
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc