Skip to content

Database Commands

Dayton Chen edited this page Mar 14, 2022 · 4 revisions

database all related setup and commands

create database databasename; create user username with encrypted password '«password»'; grant all privileges on database databasename to username;

or

CREATE USER WITH DATABASE DATABASENAME CREATEDB; CREATE DATABASE WITH OWNER USERNAME;

npx sequelize init npx dotenv sequelize db:migrate npx dotenv sequelize db:migrate:undo:all npx dotenv sequelize db:seed:all npx dotenv sequelize db:seed:undo:all

npx sequelize model:generate --name User --attributes username:varchar,password:string,emailAddress:varchar

npx sequelize model:generate --name Movie --attributes title:varchar,image:varchar,year:integer,cast:varchar,plot:text

npx sequelize model:generate -name Review --attributes review:text,rating:numeric,user_Id:integer,movie_Id:integer

npx sequelize model:generate -name Watchlist --attributes watchstatus:varchar,user_Id:integer

npx sequelize model:generate -name WatchlistJoinMovie --attributes movie_Id:integer,watchlist_Id:integer

npx sequelize seed:generate --name Users npx sequelize seed:generate --name Movies npx sequelize seed:generate --name Reviews npx sequelize seed:generate --name Watchlists npx sequelize seed:generate --name WatchlistJoinMovies

example model set up 'use strict'; module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { username: { allowNull: false, type: DataTypes.STRING(100), unique: true }, password: { allowNull: false, type: DataTypes.STRING.BINARY }, emailAddress: { allowNull: false, unique: true, type: DataTypes.STRING(100), unique: true }, }, {}); User.associate = function(models) { User.hasMany(models.Watchlist, { foreignKey: 'user_Id' }); User.hasMany(models.Review, { foreignKey: 'user_Id' }); };

return User; };

Association:

User User.hasMany(models.Watchlist, { foreignKey: 'user_Id' }); User.hasMany(models.Review, { foreignKey: 'user_Id' });

Movie const columnMapping = { foreignKey: 'movieId', through: 'WatchlistJoinMovie', otherKey: 'watchlist_Id' } Movie.belongsToMany(models.Watchlist, columnMapping)

Movie.hasMany(models.Review, {foreignKey: 'movie_Id'})

Review Review.belongsTo(models.User, { foreignKey: 'user_Id'}) Review.belongsTo(models.Movie, { foreignKey: 'movie_Id'})

Watchlist Watchlist.belongsTo(model.User, {foreignKey: 'user_Id'})

const columnMapping = { foreignKey: 'watchlist_Id' through: 'WatchlistJoinMovies' otherKey: 'movie_Id' } Watchlist.belongsToMany(models.Movie, columnMapping)

WatchlistJoinMovies *currently no associations

Clone this wiki locally