3.7 KiB
3.7 KiB
Chart of Accounts - Migration Instructions
✅ Files Created
- Migration Script:
scripts/run-chart-of-accounts-migration.sh - Initialization Script:
scripts/initialize-chart-of-accounts.ts - Prisma Model: Already added to
prisma/schema.prisma
🚀 Quick Start
Option 1: Automated Script (Recommended)
cd dbis_core
# Set DATABASE_URL or ensure .env file exists
export DATABASE_URL="postgresql://dbis:password@192.168.11.100:5432/dbis_core"
# Run the automated script
./scripts/run-chart-of-accounts-migration.sh
Option 2: Manual Steps
cd dbis_core
# 1. Set DATABASE_URL
export DATABASE_URL="postgresql://dbis:password@192.168.11.100:5432/dbis_core"
# 2. Generate Prisma client
npx prisma generate
# 3. Create and apply migration
npx prisma migrate dev --name add_chart_of_accounts
# 4. Initialize accounts
ts-node scripts/initialize-chart-of-accounts.ts
📋 Prerequisites
- Database Connection: Ensure
DATABASE_URLis set or exists in.envfile - Node.js: Node.js and npm installed
- Dependencies: Run
npm installif not already done
🔧 Database Connection
Local Development
Create a .env file in dbis_core/:
DATABASE_URL=postgresql://user:password@localhost:5432/dbis_core
Production (Proxmox)
Based on deployment docs, the database is at:
- Host: 192.168.11.100
- Port: 5432
- Database: dbis_core
- User: dbis
- Password: (from deployment docs)
DATABASE_URL=postgresql://dbis:8cba649443f97436db43b34ab2c0e75b5cf15611bef9c099cee6fb22cc3d7771@192.168.11.100:5432/dbis_core
✅ Verification
After running the migration and initialization:
# Check accounts via API (if API is running)
curl http://localhost:3000/api/accounting/chart-of-accounts
# Or check directly in database
psql $DATABASE_URL -c "SELECT COUNT(*) FROM chart_of_accounts;"
psql $DATABASE_URL -c "SELECT account_code, account_name, category FROM chart_of_accounts WHERE level = 1;"
🐛 Troubleshooting
Error: DATABASE_URL not found
- Create
.envfile withDATABASE_URL - Or export it:
export DATABASE_URL="..."
Error: Migration already exists
- If migration was partially applied, you can:
- Reset:
npx prisma migrate reset(⚠️ deletes data) - Or mark as applied:
npx prisma migrate resolve --applied add_chart_of_accounts
- Reset:
Error: Prisma client not generated
- Run:
npx prisma generate
Error: TypeScript compilation
- Install ts-node:
npm install -g ts-nodeornpm install --save-dev ts-node - Or build first:
npm run build
📊 Expected Results
After successful initialization:
- ✅ 50+ accounts created in
chart_of_accountstable - ✅ 5 main categories: Assets, Liabilities, Equity, Revenue, Expenses
- ✅ All accounts have USGAAP and IFRS classifications
- ✅ Hierarchical structure with parent-child relationships
🔄 Re-initialization
If you need to re-initialize (e.g., after schema changes):
# Option 1: Delete and re-create (⚠️ deletes existing accounts)
psql $DATABASE_URL -c "TRUNCATE TABLE chart_of_accounts CASCADE;"
ts-node scripts/initialize-chart-of-accounts.ts
# Option 2: Use upsert (safe, updates existing)
# The initializeChartOfAccounts() function uses upsert, so it's safe to run multiple times
ts-node scripts/initialize-chart-of-accounts.ts
📝 Next Steps
After migration and initialization:
- Verify accounts: Check that all accounts were created
- Test API: Ensure API endpoints work
- Link to Ledger: Update ledger service to use chart of accounts codes
- Generate Reports: Use chart of accounts for financial statements
Status: ✅ Ready to run migration and initialization!