{"id":26442723,"url":"https://github.com/ahmard/database-backup","last_synced_at":"2025-03-18T10:29:56.648Z","repository":{"id":184060738,"uuid":"671241200","full_name":"Ahmard/database-backup","owner":"Ahmard","description":"Database Backup Library","archived":false,"fork":false,"pushed_at":"2023-10-07T15:30:17.000Z","size":13,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-22T03:47:42.387Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ahmard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-26T21:48:29.000Z","updated_at":"2023-10-05T22:42:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"e352febd-4087-4383-bcb5-c33c8dccd331","html_url":"https://github.com/Ahmard/database-backup","commit_stats":null,"previous_names":["ahmard/database-backup"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmard%2Fdatabase-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmard%2Fdatabase-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmard%2Fdatabase-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmard%2Fdatabase-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ahmard","download_url":"https://codeload.github.com/Ahmard/database-backup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244201487,"owners_count":20415087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-18T10:29:56.162Z","updated_at":"2025-03-18T10:29:56.641Z","avatar_url":"https://github.com/Ahmard.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Database Backup\n\nTakes database backup after certain interval\n\n## Installation\n\n```composer require ahmard/database-backup```\n\n## Usage\n\n```php\nuse DatabaseBackup\\Backup;\nuse DatabaseBackup\\Helpers\\Console;\n\n// Backup Class (NucleusBackup.php)\nclass NucleusBackup extends AbstractBackup\n{\n    protected bool $sendMailOnError = false;\n    protected bool $sendMailOnSuccess = false;\n    \n    public function interval(): int\n    {\n        return 2_000;\n    }\n\n    public function filePath(): string\n    {\n        return sprintf('%s/nucleus-%s.sql', dirname(__DIR__, 2), uniqid());\n    }\n\n    public function onSuccess(string $path, callable $done): void\n    {\n        $done();\n        Console::info('nucleus backup completed');\n        unlink($path);\n    }\n\n\n    public function connection(): DatabaseConnection\n    {\n        return new DatabaseConnection(\n            driver: DatabaseDriver::MYSQL,\n            host: 'localhost',\n            username: 'root',\n            password: '1234',\n            database: 'nucleus'\n        );\n    }\n}\n\n// Runner (run.php)\nuse Swoole\\Runtime;\nuse DatabaseBackup\\Backup;\nuse DatabaseBackup\\Helpers\\Console;\n\nrequire __DIR__ . '/vendor/autoload.php';\n\nRuntime::enableCoroutine(SWOOLE_HOOK_ALL);\n\nConsole::writeln(\"Backup service started\");\n\n// Run backups\nBackup::new()-\u003estart([NucleusBackup::class]);\n\n```\n\n### Mail Notification\n\n```php\n\nuse DatabaseBackup\\Backup;\n\n$receivers = [\n    new MailReceiver(\n        email: 'jane.doe@example.com',\n        name: 'Jane Doe'\n    ),\n];\n\n$smtp = new SmtpCredential(\n    host: 'localhost',\n    port: 8025,\n    username: 'noreply@example.com',\n    password: 'Password',\n    auth: false\n);\n\nBackup::new()\n    -\u003ewithSmtp($smtp)\n    -\u003ewithMailReceivers($receivers)\n    -\u003estart([NucleusBackup::class]);\n```\n\nThis library is **MIT Licenced**\n\nEnjoy 😉\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmard%2Fdatabase-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmard%2Fdatabase-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmard%2Fdatabase-backup/lists"}