PlanetScale包为你的Laravel应用程序添加了一个artisan pscale:migrate命令。
这个命令可以帮助你使用PlanetScale的API来管理数据库迁移,这个过程与使用内置的migrate命令略有不同,在部署过程中, 你会运行下面的命令而不是migrate,
因为migrate会做所有必要的事情来更新你的数据库模式:
php artisan pscale:migrate
安装
通过Composer安装
composer require x7media/laravel-planetscale
配置和使用
1.登录到你的PlanetScale账户,从组织设置中获得你的服务令牌和服务令牌ID。
同时记下你的组织名称和生产分支名称,以便接下来的步骤。
2.在你的服务令牌上为你的应用程序的数据库添加以下数据库级别的权限:
create_branch - 创建一个数据库分支delete_branch - 删除一个数据库分支connect_branch - 连接到数据库分支,或为其创建密码和证书create_deploy_request - 创建一个数据库部署请求read_deploy_request - 读取数据库部署请求
3.在PlanetScale的数据库设置界面,点击复选标记,启用 "自动复制迁移数据 "设置。
从迁移框架的下拉菜单中选择 "Laravel",它应该在迁移表的名称中填写 "migrations"。
然后保存数据库设置。这将允许迁移状态在PlanetScale数据库分支之间同步。
4.在你的应用程序中设置以下环境变量,并赋予适当的值:
planetscale_organization=planetscale_production_branch =planetscale_service_token_id=planetscale_service_token=
另外,你需要确保你的数据库名称被设置在:
DB_DATABASE=
或
你可以选择发布该配置:
php artisan vendor:publish --tag=laravel-planetscale-config
然后自定义配置中的值。
注意:
如果你采取这种方法,我们强烈建议你仍然使用环境变量或其他一些秘密存储,至少为你的服务令牌和服务令牌ID提供安全保障。
在你的部署脚本或过程中,用这个命令取代php artisan migrate命令:
php artisan pscale:migrate
注意:
pscale:migrate命令支持与Laravel内置的迁移命令相同的选项, 当它到达过程中的那一步时, 会将这些选项传递给它.
为什么需要这个命令?
你可能会问,为什么需要这个命令而不是直接使用migrate命令。
根据软件包的自述:
https://github.com/x7media/laravel-planetscale/blob/b3fcf63f2830d4f3752d4be0b0896c985704efe3/readme.md#why-is-this-necessary
PlantScale处理迁移的方式与你通常看到的数据库的方式不同:
当把PlanetScale作为你的应用程序的生产数据库时,它有很多优点。
然而,它以一种不寻常的方式处理你的数据库和模式迁移。
它为你的数据库使用分支。
分支可以是生产型的,也可以是开发型的...
这个包使用PlanetScale的公共API:
https://api-docs.planetscale.com/
来自动创建一个新的开发分支, 将你的应用程序连接到开发分支,
在开发分支上运行你的Laravel迁移, 将其合并到你的生产分支, 并删除开发分支.
要开始使用这个软件包,
请查看GitHub上的软件包设置说明:
https://github.com/x7media/laravel-planetscale
相关的:
说到PlanetScale和数据库,
Aaron Francis:
https://twitter.com/aarondfrancis/
出版了
MySQL for Developers:
https://laravel-news.com/mysql-for-developers-course
我们强烈建议你去看看,以提高你的数据库技能。
转:
https://laravel-news.com/planetscale-database-migrations-for-laravel