Cursos / Informática para Internet / Plataformas de aplicações Web / Aula

arrow_back Aula 09 - PetTopStore - Admin - Parte 1

Criando as outras tabelas

Vamos repetir o processo acima e criar as tabelas restantes com uma migration para cada.

Crie as migrations restantes assim:

npx knex migrate:make create_clients
npx knex migrate:make create_categories
npx knex migrate:make create_products
npx knex migrate:make create_products
npx knex migrate:make create_items

Abaixo segue o conteúdo de cada arquivo de migração criado (menos o de employees, que já foi criado anteriormente). Os timestamps dos nomes dos arquivos vão variar no seu projeto):

migrations/20210820015100_create_clients.js

exports.up = function(knex) {
 return knex.schema.createTable('clients', function (table) {
   table.increments('id');
   table.string('email');
   table.string('password');
   table.string('name');
 })
};

exports.down = function(knex) {
 return knex.schema.dropTable('clients');
};

migrations/20210820015127_create_categories.js

exports.up = function(knex) {
 return knex.schema.createTable('categories', function (table) {
   table.increments('id');
   table.string('name');
 })
};

exports.down = function(knex) {
 return knex.schema.dropTable('categories');
};

migrations/20210820015133_create_products.js

exports.up = function(knex) {
 return knex.schema.createTable('products', function (table) {
   table.increments('id');
   table.string('name');
   table.text('description');
   table.string('photo', 2000);
   table.decimal('price', 10, 2);
   table.integer('category_id').unsigned().references('categories.id');
 })
};

exports.down = function(knex) {
 return knex.schema.dropTable('products');
};

migrations/20210820015140_create_sales.js

exports.up = function(knex) {
 return knex.schema.createTable('sales', function (table) {
   table.increments('id');
   table.integer('client_id').notNullable().unsigned().references('clients.id');
   table.integer('employee_id').nullable().unsigned().references('employees.id');
 })
};

exports.down = function(knex) {
 return knex.schema.dropTable('sales');
};

migrations/20210820015146_create_items.js

exports.up = function(knex) {
 return knex.schema.createTable('items', function (table) {
   table.increments('id');
   table.integer('sale_id').notNullable().unsigned().references('sales.id');
   table.integer('product_id').notNullable().unsigned().references('products.id');
 })
};

exports.down = function(knex) {
 return knex.schema.dropTable('items');
};

Para executar as migrações que acabou de criar você pode executar o comando 'npx knex migrate:up' várias vezes (uma para cada migration) ou pode também rodar todas as restantes de uma vez com um só comando:

npx knex migrate:latest

Conferindo se as tabelas estão no banco de dados:

Descrição imagem

Sucesso. Criamos com o knex.js todas as tabelas do banco de dados utilizando migrations.

Como você notou nas migrations, existem comandos específicos para se criar colunas com as configurações desejadas, podendo ser informado o seu tipo, se são chaves estrangeiras, se podem ou não receber valores nulos, etc.


Versão 5.3 - Todos os Direitos reservados