https://github.com/mirshahreza/zync
A database package manager, similar to npm, for easily installing and managing SQL objects like stored procedures and functions with automatic dependency resolution.
https://github.com/mirshahreza/zync
package-management package-manager rdbms sql
Last synced: 7 months ago
JSON representation
A database package manager, similar to npm, for easily installing and managing SQL objects like stored procedures and functions with automatic dependency resolution.
- Host: GitHub
- URL: https://github.com/mirshahreza/zync
- Owner: mirshahreza
- License: mit
- Created: 2025-09-26T19:12:27.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-10-05T04:57:40.000Z (7 months ago)
- Last Synced: 2025-10-05T06:17:12.005Z (7 months ago)
- Topics: package-management, package-manager, rdbms, sql
- Language: TSQL
- Homepage:
- Size: 1.31 MB
- Stars: 6
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# ποΈ Zync - Database Package Manager
[](LICENSE.txt)
[](https://www.microsoft.com/en-us/sql-server/)
**Zync** is a database package manager similar to npm for Node.js or NuGet for .NET. It helps you easily install, manage, and deploy database objects (stored procedures, functions, views, tables) from standardized repositories with automatic dependency resolution.
## β¨ Core Concepts
Zync simplifies database development by applying modern package management principles to SQL:
- π¦ **Package Management**: Manage database objects (procedures, functions, etc.) as modular packages.
- π **Dependency Resolution**: Automatically install dependencies in the correct order.
- π― **Simple Commands**: Use single commands to deploy entire packages or individual scripts.
- π‘οΈ **Safe Deployment**: Handle object creation and updates safely without manual intervention.
- ποΈ **Standard Repositories**: Use a built-in library of utilities or create your own.
## π Getting Started
Zync currently supports only **SQL Server** (MsSql). All scripts, tests, and docs live under the `MsSql/` folder.
### π SQL Server
> β
**Status**: Production-ready with comprehensive test coverage (100% pass rate)
**[π Get Started with SQL Server β](MsSql/README.md)**
Quick installation and test:
```powershell
# Install Zync core
sqlcmd -S .\SQL2022 -d master -E -C -i "c:\Workspace\Projects\Zync\MsSql\Zync.sql"
# Install all packages
.\InstallLocalPackages.ps1
# Run comprehensive tests
.\RunAllTests.ps1
# Or run specific package test
.\RunSingleTest.ps1 -TestName string
```
## ποΈ Project Structure
```
Zync/
βββ LICENSE.txt
βββ README.md # Project overview (you are here)
βββ MsSql/ # SQL Server implementation
βββ README.md # SQL Server documentation
βββ Zync.sql # Core package manager (v3.0)
βββ Packages/ # 12 Available packages (131 objects)
β βββ Backup/ # Backup & restore utilities (4 objects)
β βββ Base/ # Base tables for common use (8 objects)
β βββ DbMan/ # Database management (23 objects)
β βββ DbMon/ # Monitoring & diagnostics (35 objects)
β βββ DateTime/ # Date/time functions (32 objects)
β βββ Financial/ # Financial calculations (9 objects)
β βββ Geographic/ # Geographic calculations (26 objects)
β βββ Json/ # JSON manipulation (5 objects)
β βββ Math/ # Mathematical functions (35 objects)
β βββ Security/ # Security & encryption (5 objects)
β βββ String/ # String operations (43 objects)
β βββ Validation/ # Validation functions (5 objects)
βββ scripts/ # PowerShell automation scripts
β βββ TestConnection.ps1 # Test database connectivity
β βββ InstallLocalPackages.ps1 # Install all packages
β βββ RunAllTests.ps1 # Run comprehensive test suite
β βββ RunSingleTest.ps1 # Run individual package test
β βββ ZyncConfig.psm1 # Configuration module
β βββ ...
βββ Test/ # Comprehensive test suite (11 files)
β βββ zync_test_*.sql # Package-specific tests
β βββ README.md # Test documentation
βββ TestLogs/ # Test execution logs & reports
```
## π― Naming Conventions
We recommend prefixing utility objects with `Zz` to keep them organized and separate from your project's business logic. They will appear at the end of database object lists, ensuring your primary objects are always visible first.
Example:
```
Customer_Orders (your business objects)
Product_Inventory
...
ZzSplitString (Zync utilities)
ZzCreateTable
```
## οΏ½ Current Status
- β
**SQL Server**: Production-ready with 12 packages (131 objects)
- β
**Test Coverage**: 100% pass rate with comprehensive test suite
- β
**PowerShell Automation**: Complete installation and testing scripts
- β
**Documentation**: Full documentation for all packages and tools
## οΏ½π£οΈ Roadmap
- [ ] **Oracle** support
- [ ] **MySQL** support
- [ ] **PostgreSQL** support
- [ ] **Package versioning** system (v1.0 in progress)
- [ ] **Package dependency** visualization
- [ ] **Web-based package** browser
- [ ] **CI/CD integration** examples
## π€ Support, Donations & Contributing
If you encounter any issues, have questions, or would like to contribute, hereβs how you can help:
### π Getting Support
- **π Create an issue**: The best way to report bugs or request features.
- **π§ Contact the maintainers**: For direct inquiries.
- **π Check the documentation**: Each package has its own `README` file.
## π License
This project is licensed under the MIT License - see the [LICENSE.txt](LICENSE.txt) file for details.
---
**Made with β€οΈ for the database community**