Meu Primeiro App com React Native - #10 Criando e Configurando o Banco de Dados
13/08/2020Nessa aula aprenderemos como criar nosso banco de dados relacionando aos nossos models de gerenciamento do banco.
Criando banco de dados no Sequelize
Criaremos inicialmente no phpmyadmin o banco weflog.
Para criação das tabelas do banco, utilizaremos o módulo Sequelize, instalado na última ala. Esses comandos deverão ser executados no nosso terminal dentro da pasta c:/Project
npx sequelize-cli model:generate --name User --attributes name:string,password:string
npx sequelize-cli model:generate --name Tracking --attributes code:string,local:string,userId:integer
npx sequelize-cli model:generate --name Product --attributes name:string,trackingId:integer
models/user.js
No model de user faremos a associação dele com as trackings:
static associate(models) {
User.hasMany(models.Tracking);
}
models/tracking.js
No model de tracking faremos duas associações:
static associate(models) {
Tracking.belongsTo(models.User);
Tracking.hasMany(models.Product);
}
models/product.js
No model de product teremos apenas uma relação de pertencimento ao model tracking:
static associate(models) {
Product.belongsTo(models.Tracking);
}
Posterior ao elencado acima, iremos nas nossas migrations para setar as chaves estrangeiras:
migrations/tracking
Na migration relacionada as trackings iremos setar a userId como chave estrangeira:
userId: {
type: Sequelize.INTEGER,
references:{
model: 'users',
key:'id'
},
onUpdate:'cascade',
onDelete:'cascade'
},
migrations/product
Na migration relacionada aos produtos iremos setar a trackingId como chave estrangeira:
trackingId: {
type: Sequelize.INTEGER,
references:{
model: 'trackings',
key:'id'
},
onUpdate:'cascade',
onDelete:'cascade'
},
config/config.json
Vamos agora dizer ao nosso sistema qual os dados do nosso banco:
"development": {
"username": "root",
"password": null,
"database": "weflog",
"host": "127.0.0.1",
"dialect": "mysql"
},
Agora estamos prontos para migrar o nosso banco. Basta rodarmos o comando abaixo:
npx sequelize-cli db:migrate
Por hoje é só! Sucesso nos códigos e na vida!
Precisa de um professor? webdesignemfoco@gmail.com