forked from tsai/budibase
25 changed files with 91 additions and 184 deletions
@ -1,13 +1 @@ |
|||||
<script> |
|
||||
import { params } from "@roxi/routify" |
|
||||
import { queries } from "stores/backend" |
|
||||
|
|
||||
// if ($params.query) { |
|
||||
// const query = $queries.list.find(m => m._id === $params.query) |
|
||||
// if (query) { |
|
||||
// queries.select(query) |
|
||||
// } |
|
||||
// } |
|
||||
</script> |
|
||||
|
|
||||
<slot /> |
<slot /> |
||||
|
|||||
@ -1,5 +0,0 @@ |
|||||
const postgres = require("./postgres") |
|
||||
|
|
||||
module.exports = { |
|
||||
POSTGRES_PLUS: postgres, |
|
||||
} |
|
||||
@ -1,135 +0,0 @@ |
|||||
// const Sql = require("../base/sql")
|
|
||||
// const { Pool } = require("pg")
|
|
||||
// const { FieldTypes } = require("../../constants")
|
|
||||
// const { FIELD_TYPES } = require("../Integration")
|
|
||||
// const { SEPARATOR } = require("@budibase/auth/db")
|
|
||||
|
|
||||
// const TYPE_MAP = {
|
|
||||
// text: FieldTypes.LONGFORM,
|
|
||||
// varchar: FieldTypes.STRING,
|
|
||||
// integer: FieldTypes.NUMBER,
|
|
||||
// bigint: FieldTypes.NUMBER,
|
|
||||
// decimal: FieldTypes.NUMBER,
|
|
||||
// smallint: FieldTypes.NUMBER,
|
|
||||
// timestamp: FieldTypes.DATETIME,
|
|
||||
// time: FieldTypes.DATETIME,
|
|
||||
// boolean: FieldTypes.BOOLEAN,
|
|
||||
// json: FIELD_TYPES.JSON,
|
|
||||
// }
|
|
||||
|
|
||||
// const SCHEMA = {
|
|
||||
// friendlyName: "PostgreSQL",
|
|
||||
// description:
|
|
||||
// "PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.",
|
|
||||
// plus: true,
|
|
||||
// datasource: {
|
|
||||
// host: {
|
|
||||
// type: FIELD_TYPES.STRING,
|
|
||||
// default: "localhost",
|
|
||||
// required: true,
|
|
||||
// },
|
|
||||
// port: {
|
|
||||
// type: FIELD_TYPES.NUMBER,
|
|
||||
// required: true,
|
|
||||
// default: 5432,
|
|
||||
// },
|
|
||||
// database: {
|
|
||||
// type: FIELD_TYPES.STRING,
|
|
||||
// default: "postgres",
|
|
||||
// required: true,
|
|
||||
// },
|
|
||||
// user: {
|
|
||||
// type: FIELD_TYPES.STRING,
|
|
||||
// default: "root",
|
|
||||
// required: true,
|
|
||||
// },
|
|
||||
// password: {
|
|
||||
// type: FIELD_TYPES.PASSWORD,
|
|
||||
// default: "root",
|
|
||||
// required: true,
|
|
||||
// },
|
|
||||
// ssl: {
|
|
||||
// type: FIELD_TYPES.BOOLEAN,
|
|
||||
// default: false,
|
|
||||
// required: false,
|
|
||||
// },
|
|
||||
// },
|
|
||||
// }
|
|
||||
|
|
||||
// class PostgresPlus extends Sql {
|
|
||||
// static pool
|
|
||||
// COLUMNS_SQL =
|
|
||||
// "select * from information_schema.columns where table_schema = 'public'"
|
|
||||
|
|
||||
// PRIMARY_KEYS_SQL = `
|
|
||||
// select tc.table_schema, tc.table_name, kc.column_name as primary_key
|
|
||||
// from information_schema.table_constraints tc
|
|
||||
// join
|
|
||||
// information_schema.key_column_usage kc on kc.table_name = tc.table_name
|
|
||||
// and kc.table_schema = tc.table_schema
|
|
||||
// and kc.constraint_name = tc.constraint_name
|
|
||||
// where tc.constraint_type = 'PRIMARY KEY';
|
|
||||
// `
|
|
||||
|
|
||||
// constructor(config, datasource) {
|
|
||||
// super("pg")
|
|
||||
// this.config = config
|
|
||||
// this.datasource = datasource
|
|
||||
|
|
||||
// if (!this.pool) {
|
|
||||
// this.pool = new Pool(this.config)
|
|
||||
// }
|
|
||||
|
|
||||
// this.client = this.pool
|
|
||||
// }
|
|
||||
|
|
||||
// async init(datasourceId) {
|
|
||||
// let keys = []
|
|
||||
// try {
|
|
||||
// const primaryKeysResponse = await this.client.query(this.PRIMARY_KEYS_SQL)
|
|
||||
// for (let table of primaryKeysResponse.rows) {
|
|
||||
// keys.push(table.column_name || table.primary_key)
|
|
||||
// }
|
|
||||
// } catch (err) {
|
|
||||
// // TODO: this try catch method isn't right
|
|
||||
// keys = ["id"]
|
|
||||
// }
|
|
||||
|
|
||||
// const columnsResponse = await this.client.query(this.COLUMNS_SQL)
|
|
||||
// const tables = {}
|
|
||||
|
|
||||
// for (let column of columnsResponse.rows) {
|
|
||||
// const tableName = column.table_name
|
|
||||
// const columnName = column.column_name
|
|
||||
|
|
||||
// // table key doesn't exist yet
|
|
||||
// if (!tables[tableName]) {
|
|
||||
// tables[tableName] = {
|
|
||||
// _id: `${datasourceId}${SEPARATOR}${tableName}`,
|
|
||||
// // TODO: this needs to accommodate composite keys
|
|
||||
// primary: keys,
|
|
||||
// name: tableName,
|
|
||||
// schema: {},
|
|
||||
// }
|
|
||||
// }
|
|
||||
|
|
||||
// tables[tableName].schema[columnName] = {
|
|
||||
// name: columnName,
|
|
||||
// type: TYPE_MAP[column.data_type] || FIELD_TYPES.STRING,
|
|
||||
// }
|
|
||||
// }
|
|
||||
// this.tables = tables
|
|
||||
// }
|
|
||||
|
|
||||
// async query(json) {
|
|
||||
// const operation = this._operation(json).toLowerCase()
|
|
||||
// const sql = this._query(json)
|
|
||||
// const response = await this.client.query(sql.sql, sql.bindings)
|
|
||||
// return response.rows.length ? response.rows : [{ [operation]: true }]
|
|
||||
// }
|
|
||||
// }
|
|
||||
|
|
||||
// module.exports = {
|
|
||||
// schema: SCHEMA,
|
|
||||
// integration: PostgresPlus,
|
|
||||
// }
|
|
||||
Loading…
Reference in new issue