orbio-db
v1.0.25
Published
**orbio-db** is a shared TypeScript library that encapsulates database entities, data source configuration, repositories, and migration logic for Node.js microservices using [TypeORM](https://typeorm.io/).
Readme
orbio-db
orbio-db is a shared TypeScript library that encapsulates database entities, data source configuration, repositories, and migration logic for Node.js microservices using TypeORM.
📆 Features
- Centralized database entities (e.g.
Account,Customer) - TypeORM
DataSourceconfiguration - Repositories and services
- Supports MySQL, PostgreSQL, and others
- Database migrations and seeds
- Compatible with CI/CD, GitHub Actions, and Docker
- Integration with
.envfor configuration
🛠️ Installation
Install the package via your private NPM registry:
npm install @arbio/orbio-db📁 Project Structure
orbio-db/
├── src/
│ ├── model/
│ ├── migration/
│ ├── dto/
│ ├── data-source.ts
├── migrations-runner.ts
├── migrate.ts
│ └── index.ts
├── .env
├── package.json
├── tsconfig.json
└── README.mdfirst time set up
Run to initialize the database(Only when the database is not already created)
sh ./scripts/init-db.sh🚀 Usage in Your Application
1. Create an AppDatasource in your microservice
export const AppDataSource = new DataSource({
type: "mysql",
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT),
username: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
entities: ["src/model/*.ts"],
migrations: ["src/migration/*.ts"],
migrationsRun: false,
synchronize: false,
});2. Use Entities
import { Customer } from "@arbio/orbio-db";
const repo = new CustomerRepository(AppDataSource);
const customer = await repo.findByEmail("[email protected]");🧪 Running Migrations
1. Generate a migration (-n should always be specified to generate a new migration file and avoid corrupting the exisiting ones)
npm run migration:generate -- -n AddCustomerTable2. Run migrations
npm run migration:runOr use a Docker image for CI/CD:
docker build -t orbio-db/db-migrator:latest .
docker run orbio-db/db-migrator:latest🔐 Environment Variables
Use a .env file or inject at runtime:
DB_HOST=
DB_PORT=
DB_USER=
DB_PASS=
DB_NAME=📆 Publishing
Build and publish the package:
npm run build
npm test
npm publishTo GitHub:
npm publish --access public --registry=https://npm.pkg.github.com🤝 Contributing
- Fork the repository
- Add your feature or entity
- Run Generate migration, run tests and build
- Create a PR
- For dev and integration, migrations will be triggered automatically on merge to main, run manually the github actions workflows to run migrations in production.
📬 Support
For bugs or issues, open a GitHub issue or contact the Arbio data/engineering team.
