Comments (6)
fwiw, the discoverExportedForeignKeys function seems to return some data from my db :
from loopback-connector-postgresql.
+1
from loopback-connector-postgresql.
anyone ? Been over a year .. surely someone else has hit this problem ?
from loopback-connector-postgresql.
Apparently not, @jmls would you like to submit a patch?
from loopback-connector-postgresql.
@jmls Have you tried using the discoverSchemas
function? It returns multiple schemas of which the models are related.
Here is a sample code snippet:
I want to discover the schemas of table Author
and Book
.
Here is what it looks like in the database:
testdb=# \d Book;
Table "public.book"
Column | Type | Modifiers
----------+---------+-----------
bid | integer | not null
name | text |
isbn | text |
authorid | integer | not null
Indexes:
"book_pkey" PRIMARY KEY, btree (bid, authorid)
Foreign-key constraints:
"book_author_author_id_fkey" FOREIGN KEY (authorid) REFERENCES author(aid)
testdb=# \d Author;
Table "public.author"
Column | Type | Modifiers
--------+-----------------------------+------------------------------------------------------
aid | integer | not null default nextval('author_aid_seq'::regclass)
name | text |
dob | timestamp without time zone |
Indexes:
"author_pkey" PRIMARY KEY, btree (aid)
Referenced by:
TABLE "book" CONSTRAINT "book_author_author_id_fkey" FOREIGN KEY (authorid) REFERENCES author(aid)
boot-script.js
'use strict';
var util = require('util');
var _ = require('lodash');
module.exports = function(app) {
var db = app.datasources.postgresqlDs;
db.discoverSchemas('book', {schema: 'public', relations: true}, function(err, result) {
if (err) throw err;
console.log('\nDiscovered schemas for `Author` and `Book` table: ' + util.inspect(result, {depth:4}));
});
};
output
sakibs-mac:postgresql-65 ssh$ node .
Web server listening at: http://0.0.0.0:3000
Browse your REST API at http://0.0.0.0:3000/explorer
Discovered schemas for `Author` and `Book` table: { 'public.book':
{ name: 'Book',
options:
{ idInjection: false,
postgresql: { schema: 'public', table: 'book' },
relations: { bookAuthorAuthorIdFkeyrel: { model: 'Author', type: 'belongsTo', foreignKey: 'authorid' } } },
properties:
{ bid:
{ type: 'Number',
required: true,
length: null,
precision: 32,
scale: 0,
id: 1,
postgresql:
{ columnName: 'bid',
dataType: 'integer',
dataLength: null,
dataPrecision: 32,
dataScale: 0,
nullable: 'NO' } },
name:
{ type: 'String',
required: false,
length: null,
precision: null,
scale: null,
postgresql:
{ columnName: 'name',
dataType: 'text',
dataLength: null,
dataPrecision: null,
dataScale: null,
nullable: 'YES' } },
isbn:
{ type: 'String',
required: false,
length: null,
precision: null,
scale: null,
postgresql:
{ columnName: 'isbn',
dataType: 'text',
dataLength: null,
dataPrecision: null,
dataScale: null,
nullable: 'YES' } },
authorid:
{ type: 'Number',
required: true,
length: null,
precision: 32,
scale: 0,
id: 2,
postgresql:
{ columnName: 'authorid',
dataType: 'integer',
dataLength: null,
dataPrecision: 32,
dataScale: 0,
nullable: 'NO' } } } },
'public.author':
{ name: 'Author',
options:
{ idInjection: false,
postgresql: { schema: 'public', table: 'author' },
relations: {} },
properties:
{ aid:
{ type: 'Number',
required: true,
length: null,
precision: 32,
scale: 0,
id: 1,
postgresql:
{ columnName: 'aid',
dataType: 'integer',
dataLength: null,
dataPrecision: 32,
dataScale: 0,
nullable: 'NO' } },
name:
{ type: 'String',
required: false,
length: null,
precision: null,
scale: null,
postgresql:
{ columnName: 'name',
dataType: 'text',
dataLength: null,
dataPrecision: null,
dataScale: null,
nullable: 'YES' } },
dob:
{ type: 'String',
required: false,
length: null,
precision: null,
scale: null,
postgresql:
{ columnName: 'dob',
dataType: 'timestamp without time zone',
dataLength: null,
dataPrecision: null,
dataScale: null,
nullable: 'YES' } } } } }
Hopefully this answered your question. Closing this issue as resolved. Feel free to reopen if needed.
from loopback-connector-postgresql.
patch has been submitted for this. not sure how this issue was ever closed as the pkName was clearly hard-coded as 'PK' in the sql...
from loopback-connector-postgresql.
Related Issues (20)
- Postgresql column as text[] or character varying() is returning data as string HOT 8
- Query with AND & OR combination is not working HOT 2
- Error when using transaction timeout HOT 6
- Postgres support > 9.x HOT 4
- LB4 with [email protected] causing SSL Error HOT 4
- eq object (JSON columns) doesn't work HOT 6
- Error: syntax error at or near ")"
- Support for Full Text Search
- Option to use joins instead of multiple calls for relations. HOT 1
- Release called on client which has already been released to the pool HOT 2
- Doesn't scramble the where correctly
- If url is empty string in config server crashes HOT 2
- Dependency Dashboard
- Add back Node.js v12 tests HOT 4
- Support bulk insert in one query using newly added createAll() in connector
- Error: Postgresql column as jsonb returning data as string using createAll() method HOT 2
- MongoDB extended operator rules erroneously applied to SQL databases and json bodies
- Default values in Models properties totally being ignored when using migrateschema. HOT 1
- Support for overlaps json operator
- Getting 5000ms Timeout error while connecting Postgres - I'm using node version 16.0.0, still running into the same problem. And I'm using the latest Postgres connector: `^7.0.1`. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from loopback-connector-postgresql.