ORM
Former-commit-id: df02243ee1a46d640ad5ecf4ddd276715a42714a
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
const DataTypes = require('./types.js');
|
||||
|
||||
class PSQLObjectRelation {
|
||||
constructor(psqlConnection) {
|
||||
this.connection = psqlConnection;
|
||||
}
|
||||
|
||||
async AddModel(name, model) {
|
||||
Logger.database(`ORM Adding ${name}`);
|
||||
let sql = `CREATE TABLE IF NOT EXISTS ${name} (`;
|
||||
let keys = Object.keys(model);
|
||||
for (let i = 0; i < keys.length; i++) {
|
||||
let key = keys[i];
|
||||
let value = model[key];
|
||||
sql += `${key} ${value}`;
|
||||
if (i < keys.length - 1) sql += ', ';
|
||||
}
|
||||
sql += ');';
|
||||
Logger.database(sql);
|
||||
await this.connection.query(sql);
|
||||
}
|
||||
|
||||
async SyncModels() {
|
||||
Logger.database('ORM Syncing...');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = PSQLObjectRelation;
|
||||
|
||||
0
src/database/psql-entity-framework/model.js
Normal file
0
src/database/psql-entity-framework/model.js
Normal file
19
src/database/psql-entity-framework/relationships.js
Normal file
19
src/database/psql-entity-framework/relationships.js
Normal file
@@ -0,0 +1,19 @@
|
||||
class RelationshipTypes {
|
||||
static get UNIQUE() {
|
||||
return 'UNIQUE';
|
||||
}
|
||||
|
||||
static get NOT_NULL() {
|
||||
return 'NOT NULL';
|
||||
}
|
||||
|
||||
static get REFERENCES() {
|
||||
return 'REFERENCES';
|
||||
}
|
||||
|
||||
static FOREIGN_KEY(localKey, foreignKey) {
|
||||
return `FOREIGN KEY (${localKey}) REFERENCES ${foreignKey}`;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = DataTypes;
|
||||
27
src/database/psql-entity-framework/types.js
Normal file
27
src/database/psql-entity-framework/types.js
Normal file
@@ -0,0 +1,27 @@
|
||||
class DataTypes {
|
||||
static VARCHAR(length) {
|
||||
return `VARCHAR(${length})`;
|
||||
}
|
||||
|
||||
static get INTEGER() {
|
||||
return 'INT';
|
||||
}
|
||||
|
||||
static get BIGINT() {
|
||||
return 'BIGINT';
|
||||
}
|
||||
|
||||
static get TEXT() {
|
||||
return 'TEXT';
|
||||
}
|
||||
|
||||
static get BOOLEAN() {
|
||||
return 'BOOLEAN';
|
||||
}
|
||||
|
||||
static get TIMESTAMP() {
|
||||
return 'TIMESTAMP WITHOUT TIME ZONE';
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = DataTypes;
|
||||
Reference in New Issue
Block a user