πŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more β†’
Socket
DemoInstallSign in
Socket

grunt-generate-database

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

grunt-generate-database

Grunt task for create database generation scripts by models description

0.0.30
Source
npm
Version published
Weekly downloads
12
-89.92%
Maintainers
1
Weekly downloads
Β 
Created
Source

grunt-generate-database

Build Status

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΠΏΠ»Π°Π³ΠΈΠ½ для создания DBWrapper, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ управлСния Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ typeorm ΠΈ postgres

Установка

npm install grunt-generate-database

Как Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ declaration.json Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅
[
    {
      "db": "postgres",
      "name" : "base1",
      "dbtype" : "dbtype1",
      "dbhost" : "dbhost1",
      "dbport" : "dbport1",
      "dbusername" : "dbusername1",
      "dbpassword" : "dbpassword1",
      "dbdatabase" : "dbdatabase1",
      "pathToDBWrappers": "./dbscript",
      "schemas" : 
     [
       {
         "namespace": "testnamespace",
         "recreate":true,
         "tables":
         [
           {
             "name": "Class", 
             "pathToModel": "./models/class"
           }
         ]
       }
     ]
   }
 ]
  • УстановитС Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚Ρ‹ Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
import {Column, Entity, PrimaryGeneratedColumn} from "typeorm";
import { GenerateHistory } from "grunt-generate-history-model";

@Entity()
@GenerateHistory({"historyPath": "./test/src/model/hero"})
export class Hero {
    @PrimaryGeneratedColumn()
    public id?: number;
    @Column()
    public name: string;
    public data: string;
    @Column()
    public detailId?: number;
    @Column({"type": "integer", "array": true, "nullable": true})
    public simpleArray: number[];
}
  • Π’ package.json Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² свойство "scripts":
  "scripts": {
    "generation": "generateDatabase"
  }

Π³Π΄Π΅ "generateDatabase" - строка для запуска ΠΏΠ»Π°Π³ΠΈΠ½Π°

  • npm run generation

  • послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² declaration.json Π² свойствС "pathToDBWrappers", появятся Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ".ts" :

    • DBWrapper
import { Class } from '../../../models/class';
import { createbase1TriggerFuncstestnamespace } from './function';
import { createbase1Triggerstestnamespace } from './trigger';
import * as dotenv from 'dotenv';
import {createConnection, Connection, getManager, EntityManager} from 'typeorm';

export class testnamespaceDBWrapper {

   private static connection: Connection;

   public static async initialize(dropSchema?: boolean, sync?: boolean): Promise<void> {
       await this.close();

       if (! dropSchema) {
           dropSchema = false;
       }
       if (! sync) {
           sync = false;
       }

       this.connection = await this.createTables(dropSchema, sync);
       if (dropSchema) {
           await createbase1TriggerFuncstestnamespace();
           await createbase1Triggerstestnamespace();
       }
   }

   private static async createTables(dropSchema?: boolean, sync?: boolean) {
       return await createConnection({
           name: 'testnamespace',
           type: 'postgres',
           replication: {
               master: {
                   host:  process.env.dbhost1,
                   port: parseInt(process.env.dbport1, 10),
                   username:  process.env.dbusername1,
                   password: process.env.dbpassword1,
                   database: process.env.dbdatabase1
               },
               slaves: []
           },
           entities: [
           Class
],
     schema: 'testnamespace',
     synchronize: sync,
     dropSchema: dropSchema
     });
   }
   public static getEntityManager (): EntityManager {
       return getManager('testnamespace');
   }

   public static async close(): Promise<void> {
       if (this.connection) {
           await this.connection.close();
           this.connection = null;
       }
   }
}
  • ВриггСрная функция(пустая Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² связи с отсутствиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ логирования)
import {createConnection, ConnectionOptions} from 'typeorm';


export async function createbase1TriggerFuncstestnamespace() {
const pgp = require('pg-promise')({});
await pgp.end();
const connectionString = 'postgres://' + process.env.dbusername1 + ':' +
process.env.dbpassword1 + '@' + process.env.dbhost1 + ':' + process.env.dbport1 + '/' + process.env.dbdatabase1;

const db = pgp(connectionString);
let queryproc = '';
pgp.end();

}
  • Π’Ρ€ΠΈΠ³Π³Π΅Ρ€
import {createConnection, ConnectionOptions} from 'typeorm';


export async function createbase1Triggerstestnamespace() {
    const pgp = require('pg-promise')({});
    await pgp.end();
    const connectionString = 'postgres://' + process.env.dbusername1 + ':' +
    process.env.dbpassword1 + '@' + process.env.dbhost1 + ':' + process.env.dbport1 + '/' + process.env.dbdatabase1;
    const db = pgp(connectionString);
    let queryproc;
    let lowerStringName;
    let lowewrStringSchema;
    pgp.end();
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

  • ПолС "db" ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° значСния : "mongo" ΠΈ "postgres"
  • ЗначСниями ΠΏΠΎΠ»Π΅ΠΉ ,Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с db(ΠΊΡ€ΠΎΠΌΠ΅ поля "db") ΡΠ²Π»ΡΡŽΡ‚ΡΡ названия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ process.env
  • Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠΌ массива являСтся описаниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
  • Бвойства с прСфиксом db ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅.
  • namespace ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ имя схСмы Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….
  • Массив tables ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со схСмой.
  • Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта table сущСствуСт ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ historyPath, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ модСль логирования.
  • Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ для создания ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ логирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ npm ΠΏΠ°ΠΊΠ΅Ρ‚ grunt-generate-history-model ΠΈ Π΅Π³ΠΎ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹, Π° Π½Π΅ созданныС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ логирования.
  • ΠŸΡ€ΠΈ использовании npm ΠΏΠ°ΠΊΠ΅Ρ‚Π° для создания ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ логирования Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ модСлям логирования Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Keywords

typescript

FAQs

Package last updated on 01 Jul 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts