Skip to content
Snippets Groups Projects
Commit 73d113fa authored by François Romain's avatar François Romain Committed by Adrien Risser
Browse files

chore: créé un dump public de la base de données (#121)

parent 44387af0
Branches
Tags
No related merge requests found
.DS_Store
.env
env-public
.env-public
node_modules
/backups
/database/*
!/database/camino-public.sql
/src/tools/sources/**/*.json
/dist
/sources
/coverage
/responses
/files
/docs
\ No newline at end of file
/docs
......@@ -40,7 +40,7 @@ Pour que l'application fonctionne, sont requis:
## Configuration et imports des données
- Cloner ce repo : `git clone https://github.com/MTES-MCT/camino-api.git`
- Créer une base de données `camino`.
- Créer une base de données PostgreSQL nommée `camino`.
- Renommer le fichier `.env-example` en `.env` et le compléter.
### Installation
......@@ -54,7 +54,7 @@ npm install
# compile l'application avec typescript
npm run build
# importe les données
# importe les données depuis /database/camino-public.sql
npm run db:import
# crée un utilisateur admin
......
// afin de faire un dump public de la base de données,
// ce script copie la base de données
// et supprime les informations confidentielles
const Knex = require('knex')
const config = require('./config-api')
const chalk = require('chalk')
const dbManager = require('knex-db-manager').databaseManagerFactory(config)
const { knexSnakeCaseMappers } = require('objection')
const titresIds = process.env.DUMP_TITRES_IDS.split(',')
const run = async () => {
try {
console.log('Copie de la base de données…')
await dbManager.dropDb('camino-public')
await dbManager.copyDb('camino', 'camino-public')
console.log('Suppression des informations confidentielles…')
const connection = {
host: process.env.PGHOST,
port: process.env.PGPORT,
database: 'camino-public',
user: process.env.PGUSER,
password: process.env.PGPASSWORD
}
const knexConfig = {
client: 'pg',
// debug: true,
connection,
...knexSnakeCaseMappers()
}
const knex = Knex(knexConfig)
const titresDeleted = await knex('titres')
.whereNotIn('id', titresIds)
.del()
console.log(`${titresDeleted} titres supprimés de la base de données`)
const activitesDeleted = await knex('titresActivites').del()
console.log(`${activitesDeleted} activités supprimés de la base de données`)
const utilisateursDeleted = await knex('utilisateurs').del()
console.log(
`${utilisateursDeleted} utilisateurs supprimés de la base de données`
)
process.exit()
} catch (e) {
console.error(chalk.red(e))
process.exit(1)
}
}
run()
......@@ -13,7 +13,7 @@ exports.up = knex => {
table.integer('contour').notNullable()
table.integer('point').notNullable()
table.string('nom').notNullable()
table.string('description')
table.string('description', 1023)
table.boolean('securite')
})
.createTable('titresPointsReferences', table => {
......
......@@ -9,9 +9,7 @@ module.exports = func => knex => {
const insert = (table, data) => {
console.log(
`Insertion des données de la table "${table}", (${
data.length
} élément(s))`
`Insertion des données de la table "${table}", (${data.length} élément(s))`
)
const arrs = []
......
This diff is collapsed.
......@@ -15,8 +15,9 @@
"homepage": "https://github.com/MTES-MCT/camino-api",
"main": "index.js",
"scripts": {
"lint": "eslint --fix src/",
"build": "rm -rf dist && npx tsc && cp -r ./src/api/schemas ./dist/api",
"start": "npm run build && node ./dist/index.js",
"lint": "eslint --fix src/",
"dev": "nodemon",
"import": "rm -rf sources && mkdir sources && node ./dist/tools/import/index.js",
"dev:import": "ts-node --transpile-only ./src/tools/import/index.js",
......@@ -34,9 +35,9 @@
"dev:daily": "ts-node --transpile-only ./src/business/daily.ts",
"monthly": "node ./dist/business/monthly.js",
"dev:monthly": "ts-node --transpile-only ./src/business/monthly.ts",
"db:export": "pg_dump -c -d camino --username=postgres -h localhost -f ./manual/database/camino-db.dump",
"db:import": "psql -d camino --username=postgres -h localhost < ./manual/database/camino-db.dump",
"start": "npm run build && node ./dist/index.js",
"db:dump": "pg_dump --clean --dbname=camino --username=postgres --host=localhost --file=./database/camino.sql",
"db:dump-public": "node ./knex/copy-clean.js && pg_dump --clean --dbname=camino-public --username=postgres --host=localhost --file=./database/camino-public.sql && dropdb --username=postgres --host=localhost camino-public",
"db:import": "psql --dbname=camino --username=postgres --host=localhost < ./database/camino-public.sql",
"graphql:schema": "ts-node ./src/tools/dev/api/graphql-dsl-to-query-convert.js",
"test": "jest --verbose && codecov",
"jest": "jest --verbose --watch",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment