This repository has been archived on 2025-08-03. You can view files and clone it, but cannot push or open issues or pull requests.
anonpenguin f183015f47 Add comprehensive documentation for decorators, migration, and relationships in DebrosFramework
- Introduced hook decorators for lifecycle methods in models.
- Documented @Model decorator for model configuration.
- Added relationship decorators for defining model relationships.
- Created MigrationBuilder and MigrationManager documentation for schema migrations.
- Added QueryExecutor and RelationshipManager documentation for query execution and relationship handling.
- Included examples for complex queries and migration scenarios.
- Developed a social platform example showcasing model relationships and application structure.
- Enhanced contributing guidelines with community, documentation, and release processes.
- Established testing guidelines for unit and integration tests.
2025-07-09 16:43:01 +03:00

2.0 KiB

sidebar_position
sidebar_position
2

Migrations

Migrations provide a way to evolve your database schema over time while preserving data integrity.

Overview

DebrosFramework includes a migration system that allows you to:

  • Add, remove, or modify fields
  • Transform existing data
  • Handle schema evolution
  • Maintain data integrity

Creating Migrations

Basic Migration

const migration = createMigration('add_user_bio', '1.1.0')
  .addField('User', 'bio', { type: 'string', required: false })
  .addField('User', 'profilePicture', { type: 'string', required: false });

Data Transformation

const migration = createMigration('update_user_display_name', '1.2.0')
  .transformData('User', (user) => ({
    ...user,
    displayName: user.displayName || user.username
  }));

Field Modifications

const migration = createMigration('modify_user_email', '1.3.0')
  .modifyField('User', 'email', { type: 'string', required: true, unique: true })
  .addValidator('email_format', async (context) => {
    // Custom validation logic
  });

Running Migrations

Manual Execution

const migrationManager = new MigrationManager(databaseManager, configManager);
await migrationManager.runMigration(migration);

Automatic Execution

const framework = new DebrosFramework({
  migrations: {
    autoRun: true,
    directory: './migrations'
  }
});

Migration Types

Schema Changes

  • Add fields
  • Remove fields
  • Modify field types
  • Add indexes

Data Transformations

  • Update existing records
  • Migrate data formats
  • Clean up invalid data

Best Practices

  1. Test migrations thoroughly before production
  2. Backup data before running migrations
  3. Use transactions where possible
  4. Plan rollback strategies