1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- const path = require('path')
- const Sequelize = require('sequelize')
- const sequelizeCursorPagination = require('sequelize-cursor-pagination')
- /* Init database */
- const sequelize = new Sequelize('gopkg', undefined, undefined, {
- dialect: 'sqlite',
- storage: path.resolve(__dirname, '../dist/data.sqlite'),
- // operatorsAliases: Sequelize.Op,
- logging: false,
- define: {
- timestamps: false,
- freezeTableName: true
- }
- })
- /* Create tables */
- const code = { type: Sequelize.STRING, primaryKey: true }
- const name = Sequelize.STRING
- const primaryKeyField = 'code'
- const Province = sequelize.define('province', { code, name })
- const City = sequelize.define('city', { code, name })
- const Area = sequelize.define('area', { code, name })
- const Street = sequelize.define('street', { code, name })
- const Village = sequelize.define('village', { code, name })
- /* With pagination */
- sequelizeCursorPagination({ primaryKeyField })(Province)
- sequelizeCursorPagination({ primaryKeyField })(City)
- sequelizeCursorPagination({ primaryKeyField })(Area)
- sequelizeCursorPagination({ primaryKeyField })(Street)
- sequelizeCursorPagination({ primaryKeyField })(Village)
- /* Set foreign key */
- Province.hasMany(City)
- City.belongsTo(Province)
- City.hasMany(Area)
- Area.belongsTo(Province)
- Area.belongsTo(City)
- Area.hasMany(Street)
- Street.belongsTo(Province)
- Street.belongsTo(City)
- Street.belongsTo(Area)
- Street.hasMany(Village)
- Village.belongsTo(Province)
- Village.belongsTo(City)
- Village.belongsTo(Area)
- Village.belongsTo(Street)
- /* Connect database */
- async function init () {
- try {
- await sequelize.sync()
- } catch (err) {
- console.log(err)
- process.exit(-1)
- }
- }
- module.exports = { init, Province, City, Area, Street, Village }
|