2015-02-05 31 views
5

ho provato il codice nel link per creare FK:migrazione knex creando estera chiave

how to do knex.js migration

ho ottenuto un errore on line:

table.bigInteger('AddressId').unsigned().index().inTable('Address').references('id'); 

L'errore:

TypeError: Object # has no method 'inTable' at 
TableBuilder_MySQL._fn (/Users/lwang/knex/migrations/20150204161920_lei_maigration.js:15:56) at 
TableBuilder_MySQL.TableBuilder.toSQL (/Users/lwang/knex/node_modules/knex/lib/schema/tablebuilder.js:61:12) at 
SchemaCompiler_MySQL.createTable (/Users/lwang/knex/node_modules/knex/lib/schema/compiler.js:14:53) at 
SchemaCompiler_MySQL.SchemaCompiler.toSQL (/Users/lwang/knex/node_modules/knex/lib/schema/compiler.js:35:24) at 
SchemaBuilder_MySQL.SchemaBuilder.toSQL (/Users/lwang/knex/node_modules/knex/lib/schema/builder.js:41:35) at 
Runner_MySQL. (/Users/lwang/knex/node_modul... 

risposta

15

Questo potrebbe arrivare un po 'in ritardo, ma l'errore è dovuto al

table.bigInteger('AddressId').unsigned().index().inTable('Address').references('id'); 

dovrebbe essere scritto

table.bigInteger('AddressId').unsigned().index().references('id').inTable('Address') 

La funzione nella Tabella esiste solo dopo aver chiamato i riferimenti, come spiegato nella documentazione http://knexjs.org/#Schema-inTable

Sets the "table" where the foreign key column is located after calling column.references.

Problemi correlati