Size: a a a

TypeORM - Русскоязычное сообщество

2019 July 17

С

Сын маминой подруги in TypeORM - Русскоязычное сообщество
cli запускается только с ts-node на локальной машине, поэтому там жётско прописано src/
А в на проде идёт по относительным путям
источник

IL

Ihor Levchenko in TypeORM - Русскоязычное сообщество
Константин Брызгалин
посмотри на objection.js – это «лёгкий» мэппер поверх кнекса, позволяет работать с сущностями через обычный кнексовский построитель, у него нет такого оверхеда…
хм, надо попробовать.
Я knex использовал для экспериментальных pet проэктов, а вот обжекшн.. слышал за него много раз, но так толком и не понял в чем его преимущество над самим knex-ом.
Я думал у него нет сущностей и он просто расширяет немного квери билдер кнекса... но значит я не все знал
источник

АД

Александр Духновский in TypeORM - Русскоязычное сообщество
Ihor Levchenko
теперь избавляюсь от typeorm, прожорливая она оказалась пипец(
Запросы нужно дебажить и тюнить, в случае неадекватности
источник

АД

Александр Духновский in TypeORM - Русскоязычное сообщество
А не тупо как есть всюду юзать
источник

IL

Ihor Levchenko in TypeORM - Русскоязычное сообщество
что значит тупо как есть всюду юзать?)
источник

АД

Александр Духновский in TypeORM - Русскоязычное сообщество
Это болезнь вообще любой орм, на любом языке
источник

АД

Александр Духновский in TypeORM - Русскоязычное сообщество
Это значит нужно всегда смотреть, какие запросы она формирует, правильно работать с индексами
источник

RA

Robert Arzin in TypeORM - Русскоязычное сообщество
Сын маминой подруги
какая у тебя структура и что прописано в конфиге подключения в entities?
я использую для конфигурации ormconfig
файл ormconfig.json
{
   "type": "mssql",
   "host": "********",
   "port": 1433,
   "username": "*********",
   "password": "**********",
   "database": "***********",
   "schema": "dbo",
   "logging": false,
   "entities": [
       "src/entity/{*.ts, *.js}"
   ],
   "subscribers": [
       "src/subscriber/{*.ts, *.js}"
   ],
   "migrations": [
       "src/migration/{*.ts, *.js}"
   ],
   "cli": {
       "entitiesDir": "src/entity",
       "migrationsDir": "src/migration",
       "subscribersDir": "src/subscriber"
   }
}


структура директорий(исходная)
src
├── config.ts
├── entity
│   ├── ActionLog.ts
│   ├── AuditGroup.ts
│   ├── AutoDispatcher.ts
│   ├── AutoResolve.ts
│   ├── Competence.ts
│   ├── CompetenceType.ts
│   ├── Configuration.ts
│   ├── Control.ts
│   ├── Group.ts
│   ├── GroupCompitence.ts
│   ├── GroupControl.ts
│   ├── ResourceTimingAndPriority.ts
│   ├── Role.ts
│   ├── RoleGroupCompetence.ts
│   ├── SM_UserInfo.ts
│   ├── UserGroup.ts
│   └── UserGroupRoleCompetence.ts
|── server.ts
|── ormconfig.json
|── package-lock.json
|── package.json

структура директорий после компиляции такая же, только на уровне src есть папка build
источник

С

Сын маминой подруги in TypeORM - Русскоязычное сообщество
Robert Arzin
я использую для конфигурации ormconfig
файл ormconfig.json
{
   "type": "mssql",
   "host": "********",
   "port": 1433,
   "username": "*********",
   "password": "**********",
   "database": "***********",
   "schema": "dbo",
   "logging": false,
   "entities": [
       "src/entity/{*.ts, *.js}"
   ],
   "subscribers": [
       "src/subscriber/{*.ts, *.js}"
   ],
   "migrations": [
       "src/migration/{*.ts, *.js}"
   ],
   "cli": {
       "entitiesDir": "src/entity",
       "migrationsDir": "src/migration",
       "subscribersDir": "src/subscriber"
   }
}


структура директорий(исходная)
src
├── config.ts
├── entity
│   ├── ActionLog.ts
│   ├── AuditGroup.ts
│   ├── AutoDispatcher.ts
│   ├── AutoResolve.ts
│   ├── Competence.ts
│   ├── CompetenceType.ts
│   ├── Configuration.ts
│   ├── Control.ts
│   ├── Group.ts
│   ├── GroupCompitence.ts
│   ├── GroupControl.ts
│   ├── ResourceTimingAndPriority.ts
│   ├── Role.ts
│   ├── RoleGroupCompetence.ts
│   ├── SM_UserInfo.ts
│   ├── UserGroup.ts
│   └── UserGroupRoleCompetence.ts
|── server.ts
|── ormconfig.json
|── package-lock.json
|── package.json

структура директорий после компиляции такая же, только на уровне src есть папка build
Скомпилированные файлы лежат рядом с исходниками?
попробуй:
entities: ['src/entity/**/*.[jt]s'],
источник

RA

Robert Arzin in TypeORM - Русскоязычное сообщество
Сын маминой подруги
У меня такая структураЖ
/dist
--/config
----/db.js
--/entity -
----/model.js

/src - исходники
--/config
----/db.ts
--/entity
----/model.ts

и в db.ts такой конфиг:
module.exports = {
 type: 'mysql',
 url: process.env.DB_URL,
 database: process.env.DB_DATABASE,
 synchronize: process.env.DB_SYNCHRONIZE || false,
 logging: process.env.DB_LOGGING || false,
 logger: 'advanced-console',
 entities: [path.resolve(__dirname, '../entity/**/*.[jt]s')],
 migrations: [path.resolve(__dirname, '../migration/**/*.[jt]s')],
 cli: {
   entitiesDir: 'src/entity',
   migrationsDir: 'src/migration',
 },
} as ConnectionOptions;

при старте ts-node работаю .ts модельки, а при билде и запуске скомпилированного кода, работают *.js
да, у меня такая же структура
источник

RA

Robert Arzin in TypeORM - Русскоязычное сообщество
Сын маминой подруги
У меня такая структураЖ
/dist
--/config
----/db.js
--/entity -
----/model.js

/src - исходники
--/config
----/db.ts
--/entity
----/model.ts

и в db.ts такой конфиг:
module.exports = {
 type: 'mysql',
 url: process.env.DB_URL,
 database: process.env.DB_DATABASE,
 synchronize: process.env.DB_SYNCHRONIZE || false,
 logging: process.env.DB_LOGGING || false,
 logger: 'advanced-console',
 entities: [path.resolve(__dirname, '../entity/**/*.[jt]s')],
 migrations: [path.resolve(__dirname, '../migration/**/*.[jt]s')],
 cli: {
   entitiesDir: 'src/entity',
   migrationsDir: 'src/migration',
 },
} as ConnectionOptions;

при старте ts-node работаю .ts модельки, а при билде и запуске скомпилированного кода, работают *.js
а, ты прям в коде прописываешь конфигмап
источник

RA

Robert Arzin in TypeORM - Русскоязычное сообщество
Константин Брызгалин
если код собирается, надо указывать как entities скомпилированные файлы. типа dist/entities/**/*.js, а вот если используется ts-node, тогда наоборот – исходные ts-файлы…
да, верно так и есть
источник

RA

Robert Arzin in TypeORM - Русскоязычное сообщество
Сын маминой подруги
Скомпилированные файлы лежат рядом с исходниками?
попробуй:
entities: ['src/entity/**/*.[jt]s'],
спасибо, попробую.
отпишусь о результатах 🙂
источник

RA

Robert Arzin in TypeORM - Русскоязычное сообщество
Сын маминой подруги
Скомпилированные файлы лежат рядом с исходниками?
попробуй:
entities: ['src/entity/**/*.[jt]s'],
не помогло:( пох, будут запускать c помощью ts-node
источник

С

Сын маминой подруги in TypeORM - Русскоязычное сообщество
Не поможет, потому что я дал пример из предположения что у тебя билды рядом с исходниками, а они в разных директориях
источник

С

Сын маминой подруги in TypeORM - Русскоязычное сообщество
Попробуй:
Скомпилируй
Поменяй пути в ormconfig.json до dist/entity/**/*.js
запусти ноду
источник

RA

Robert Arzin in TypeORM - Русскоязычное сообщество
Сын маминой подруги
Попробуй:
Скомпилируй
Поменяй пути в ormconfig.json до dist/entity/**/*.js
запусти ноду
я отдельный ormconfig пропихиваю уже в скомпилированные js файлы
источник

С

Сын маминой подруги in TypeORM - Русскоязычное сообщество
вооо, правильно
источник

RA

Robert Arzin in TypeORM - Русскоязычное сообщество
Сын маминой подруги
вооо, правильно
В итоге я забил на все это и взял ts-node и под ним уже  запускаю в контейнере код
источник
2019 July 22

VS

Vladyslav Siroshtan in TypeORM - Русскоязычное сообщество
Всем привет.
Есть ли какая-то возможность получить из ошибки поле "column" с валидными данными (оно всегда undefined) ?
Хотелось бы красивые ошибкки клиенту отдать)
источник