PostgreSQL, relationships - regular column created but there is no foreign key
- Vorherrschende Sprache
- JavaScript
- Sterne
- 2k
- Forks
- 238
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Code example:
```
var schema = new Schema(driverType, connectionConfig);
var UserToken = schema.define('UserToken', {
token: {type: String, index: true}
}, {
tablename: 'user_token'
});
var User = schema.define('User', {
email: {type: String, allowNull: false, index: true},
password_hash: String,
first_name: String,
last_name: String,
role: {type: String, allowNull: false, default: 'member'},
language: {type: String, default: 'en'},
api_key: String,
active: {type: Boolean, allowNull: false, default: true},
confirmed: Date,
created: {type: Date, default: Date.now},
modified: Date
}, {
tablename: 'users'
});
User.hasMany(UserToken, {as: 'tokens', foreignKey: 'userId'});
UserToken.belongsTo(User, {as: 'user', foreignKey: 'userId'});
schema.automigrate();
```
Got DDLs:
```
CREATE TABLE public."UserToken" (
id serial NOT NULL DEFAULT nextval('"UserToken_id_seq"'::regclass),
token varchar,
"userId" int4,
CONSTRAINT "UserToken_pkey" PRIMARY KEY (id)
);
CREATE TABLE public."User" (
id serial NOT NULL DEFAULT nextval('"User_id_seq"'::regclass),
email varchar NOT NULL,
password_hash varchar,
first_name varchar,
last_name varchar,
role varchar NOT NULL,
"language" varchar,
api_key varchar,
active bool NOT NULL,
confirmed timestamptz,
created timestamptz,
modified timestamptz,
CONSTRAINT "User_pkey" PRIMARY KEY (id)
);
```
So "userId" column created as regular int4, but there is no foreignKey. The use of foreign keys is the basic concept of relational databases, it's required for data integrity.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Look at the schema definition and relationship mapping code in jugglingdb, likely in lib/schema.js or similar. The foreign key constraint is missing in PostgreSQL DDL generation. Check how automigrate works for PostgreSQL adapter, and see if foreign keys are being omitted. Test by creating a relationship and inspecting the generated SQL.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, postgresql
- Bereich
- backend, databases
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 45/100