PostgresSQL plugin for stacks
. The underlying implementation uses the Kysely Postgres query builder. This was chosen to provide as much forward functionality as possible.
let model = stack.create.model('model', {
name: ''
})
model.symbols.push({
name: 'postgres:
})
Name | Required | Type | Description |
---|---|---|---|
postgres:tablename |
optional | string | The name of the Postgres Table. Defaultrs to the Model's name. |
postgres:custom |
optional |
function(builder: CreateTableBuilder<any, any>): Promise<CreateTableBuilder<any, any>>
|
Allows you to fully customize the table creation process. This is a lambda function that provides you with the CreateTableBuilder Object in the underlying library. |
Name | Required | Type | Description |
---|---|---|---|
postgres:datatype |
optional | string | The Postgres Data Type, as specified here. If not provided the plugin will assign a default based on its type. See the Default Type Mapping table below. |
postgres:columnname |
optional | string | The name of the column for this Member |
postgres:customcolumn |
optional |
function(builder: CreateTableBuilder<any, any>): Promise<CreateTableBuilder<any, any>>
|
A custom column definition builder. This exposes the underlying builder to configure the column any way you need. |
Examples
Default Type Mapping
JS Type | Postgres Type | Notes |
---|---|---|
string | text |
|
number | integer |
|
boolean | boolean |
|
array | [] | Also supports List of Lists, ie int[][]
|
Object Ref | table or composite type | Will use the Type's Table nme or Composite name |
TODO: Fill out
name: 'stacks:postgres',
version: this.version || 'version-not-set',
store: {
config: this.config,
db: this.context.db,
tables: Array.from(this.context.tableMap.values())
}
- Search indexes are created on each table for the
id
column using btree.