constructor({
        knex,
        tables,
        schemaTables,
        clearDatabase = false,
        baseDataPack = '',
        baseUrl,
        logger,
        printDependencies,
        withDefault,
        seed,
        quantities = {},
        useTransaction = true
    }) {
        this.knex = knex;
        this.tableList = tables || [];
        this.schemaTables = schemaTables;
        this.willClearData = clearDatabase;
        this.useBaseDataPack = baseDataPack !== '';
        this.baseDataPack = baseDataPack;
        this.baseUrl = baseUrl;
        this.logger = logger;
        this.withDefault = withDefault;
        this.printDependencies = printDependencies;
        this.seed = seed;
        this.quantities = quantities;
        this.useTransaction = useTransaction;
    }
@param {object} options
@param {Record<string,number>} [options.quantities] Pass in custom amounts for specific tables
@param {number} [options.seed] If you pass the same seed, the same data will be generated if you used the same options too and if the data generation code remained the same.