Kita lanjut ke part 2 disini kita langsung membuat file index.js nya.. Jadi jika kalian menggunakan vscode bisa langsung dibuka folder project nya….
oke jadi knex ini skemanya mirip laravel ya, jadi untuk kalina yang terbiasa dengan command menggunakan laravel maka tidak begitu sulit menggunakan knex.. Kali ini kita akan coba membuat koneksi kedatabase postgres dan membuat migration dengan seeds…
{
"name": "objection_knex",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"migrate": "npx knex migrate:latest --knexfile ./db/knexfile.js",
"script": "nodemon index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"knex": "^0.95.12",
"objection": "^2.2.17",
"pg": "^8.7.1"
},
"devDependencies": {
"nodemon": "^2.0.14"
}
}
oke jadi untuk package.json akan terlihat seperti diatas, kita edit dibagian script dengan menggunakan nodemon dan call function untuk migrate nya…
mkdir db
cd db
mkdir migrations seeds
Jadi kita akan membuat sebuah folder untuk menempatkan konfigurasi dari migrations datanya.. setelah itu :
cd ..
npx knex init
npx knex migrate:make init
command diatas adalah untuk generate file migrationsnya sehingga nantinya akan ada file knexfile.js.. kita edit filenya
// Update with your config settings.
const {knexSnakeCaseMappers} = require('objection')
module.exports = {
development: {
client: 'postgresql',
connection: {
database: 'objection_tutorial',
user: 'postgres',
password: 'postgres'
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'knex_migrations'
},
seeds: {
directory: './seeds',
},
...knexSnakeCaseMappers,
},
};
dan pindahkan file migrations kedalam folder db/migrations dan edit filenya..
exports.up = function(knex) {
return knex.schema.createTable('channel', (table) => {
table.increments();
table.string('name').notNullable();
table.timestamps(true,true);
}).createTable('user', (table) => {
table.increments();
table.string('name').notNullable();
table.string('email').notNullable().unique();
table.integer('channelId').references('id').inTable('channel');
table.timestamps(true, true);
}).createTable('vide', (table) => {
table.increments();
table.string('title').notNullable();
table.integer('channelId').notNullable().references().inTable('channel');
table.timestamps(true, true);
})
};
exports.down = function(knex) {
return knex.schema.dropTableIfExists('post')
.dropTableIfExists('user')
.dropTableIfExists('channel');
};
oke cukup untuk code diatas,, sekarang kita test migrationsnya..
npm run migrate
jika berhasil maka akan seperti ini …
objection_knex@1.0.0 migrate /home/laughface809/Documents/FullStack/objection_knex
npx knex migrate:latest –knexfile ./db/knexfile.jsWorking directory changed to ~/Documents/FullStack/objection_knex/db
Using environment: development
Batch 1 run: 1 migrations
Dan struktur folder akan seperti ini …
.
├── db
│ ├── migrations
│ └── seeds
└── node_modules
oke sekarang masuk ke pgadmin dan di bagian schema, public dan tables akan ada hasil migrations-nya…
cukup sekian dulu,, kita lanjut di part 3 cyaaa….