This package provides a few (one, at the moment) useful custom naming strategies. It alliterates the name of columns, relations, and other fields in the database.
For example, using the snake strategy, if you have a model like this:
class User {
@Column()
createdAt
}
In the DB the createdAt
field will be created_at
- Snake
It's available as an npm package
npm install typeorm-naming-strategy --save
Or using yarn
yarn add typeorm-naming-strategy
import { createConnection } from 'typeorm'
// import { SnakeNamingStrategy } from 'typeorm-naming-strategy';
import SnakeNamingStrategy from 'typeorm-naming-strategy'
createConnection({
// ...
namingStrategy: new SnakeNamingStrategy(), // Here you'r using the strategy!
})
Alternatively you can use it in combination with a ormconfig.js
// Use require instead of import
// const SnakeNamingStrategy = require("typeorm-naming-strategy").SnakeNamingStrategy
const SnakeNamingStrategy = require('typeorm-naming-strategy')
module.exports = {
// ...
namingStrategy: new SnakeNamingStrategy(),
}
Or you can use it in combination with a ormconfig.ts
import SnakeNamingStrategy from 'typeorm-naming-strategy'
module.exports = {
// ...
namingStrategy: new SnakeNamingStrategy(),
}
Use with NestJs configuration
import type { MysqlConnectionOptions } from 'typeorm/driver/mysql/MysqlConnectionOptions'
import { registerAs } from '@nestjs/config'
import { SnakeNamingStrategy } from 'typeorm-naming-strategy'
export default registerAs('database', (): MysqlConnectionOptions => ({
// ...
namingStrategy: new SnakeNamingStrategy(),
// ...
}))