You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Created comprehensive v0.7-to-v0.8 migration guide with feature documentation and examples.
Updated all documentation files:
- README.md and docs/index.md with v0.8.0 "What's New" sections
- Reorganized version migration index with "Current" and "Previous Releases"
- Updated API docs for lockingService and THandler generic parameter
- Updated guide docs with locking examples (production-deployment, cli-adapter-development)
- Enhanced comparison.md with detailed comparison tables for JS/TS and cross-platform tools
-**✨ 100% Backwards Compatible** - Zero breaking changes from v0.7.x, all features are opt-in
38
35
39
-
**⚠️ BREAKING CHANGES in v0.7.0:**Constructor signature changed (config moved into dependencies), and service properties removed (use public API methods instead). Migration takes 15-30 minutes. See the [v0.6.x → v0.7.0 Migration Guide](https://migration-script-runner.github.io/msr-core/version-migration/v0.6-to-v0.7) for step-by-step instructions.
36
+
**✅ NO BREAKING CHANGES in v0.8.0:**Fully backwards compatible with v0.7.x. Locking is disabled by default and can be enabled when ready. Handler generic type is optional with sensible defaults. See the [v0.7.x → v0.8.0 Migration Guide](https://migration-script-runner.github.io/msr-core/version-migration/v0.7-to-v0.8) for upgrade instructions and new features.
**Enhanced type safety, metrics collection, and multi-format configuration:**
50
-
51
-
-**🛡️ Generic Type Parameters** - Database-specific type safety with `<DB extends IDB>` generics throughout the API (**BREAKING**: type parameters now required)
52
-
-**📊 Metrics Collection** - Built-in collectors for observability with console, JSON, CSV, and logger-based output
53
-
-**📄 YAML, TOML, and XML Support** - Use your preferred config format (`.yaml`, `.toml`, `.xml`) alongside JS/JSON
54
-
-**🔌 Plugin Architecture** - Extensible loader system with optional peer dependencies keeps core lightweight
55
-
-**🎚️ Log Level Control** - Configurable log levels (`error`, `warn`, `info`, `debug`) to control output verbosity
56
-
-**💡 Better Error Messages** - Actionable error messages with installation instructions when formats aren't available
Copy file name to clipboardExpand all lines: docs/api/interfaces/database-handler.md
+118-1Lines changed: 118 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ Interface that must be implemented for your specific database.
27
27
{: .note }
28
28
> **Design Origin**: The handler pattern emerged from MSR's 2017 Firebase prototype, where an `EntityService` provided clean helper methods like `updateAll(callback)` and `findAllBy(propertyName, value)`. Instead of raw database SDK calls in every migration, this service layer made migrations declarative and maintainable. This pattern proved so valuable it became core to MSR's architecture - allowing you to inject your own services, repositories, and business logic into migrations. Read more in the [origin story](../../about/origin-story).
@@ -124,6 +125,122 @@ Handles database backup and restore operations. See [`IBackup` interface](backup
124
125
125
126
---
126
127
128
+
### lockingService
129
+
130
+
Locking interface for preventing concurrent migrations (optional, v0.8.0).
131
+
132
+
```typescript
133
+
lockingService?:ILockingService<DB>
134
+
```
135
+
136
+
**Optional (v0.8.0):** Provides database-level locking to prevent multiple processes from running migrations simultaneously. When not provided, locking is disabled.
0 commit comments