aiven / aiven-laravel
Aiven数据库和Laravel的Artisan助手
README
✨ 给您的Laravel项目添加一些Aiven魔法 ✨
此Laravel包提供了一些aiven
命令,用于artisan
以帮助管理您的开发数据库并生成与它们一起使用的正确配置。此版本支持MySQL和PostgreSQL。
使用这些命令来
- 列出项目中的Aiven服务
- 从
artisan
中开启和关闭数据库,这样您在不在工作时不会让计费继续 - 获取可以直接粘贴到您的
.env
文件或环境中的数据库配置
入门指南
使用Composer
安装此包
composer require aiven/aiven-laravel
您需要一个Aiven账户 - 如果您还没有,请注册免费试用。通过Web界面创建您在项目中使用的数据库,或者调查Aiven CLI。
获取您的Aiven账户的认证令牌,并将其设置为环境中的AIVEN_API_TOKEN
。
建议您还将AIVEN_DEFAULT_PROJECT
设置为您的Aiven账户中您将使用服务的项目(但如果您愿意,也可以为所有命令提供--project [projectname]
)
用法
获取可用的Aiven服务(数据库)列表
php artisan aiven:list
获取特定服务的环境变量,以便导出或粘贴到.env
php artisan aiven:getconfig --service my-postgres-db
当您在Laravel中使用
DATABASE_URL
时,必须删除所有以DB_
开头的配置条目,以避免冲突。
检查服务的状态
php artisan aiven:state --service my-postgres-db
开启或关闭服务
php artisan aiven:powerup --service my-postgres-db
php artisan aiven:powerdown --service my-postgres-db
在不使用服务时关闭它们是有用的,这样您就不会被收费(即使您仍然在使用试用积分!)
数据存储特定设置
MySQL和PostgreSQL®
PHP与关系型数据库相处得很好,Laravel也使其非常直接。
-
从
.env
中删除所有以DB_
开头的配置条目 -
粘贴
aiven:getconfig
命令的输出。对于MySQL和PostgreSQL,这是DATABASE_URL
。对于PostgreSQL,我们需要告诉Laravel我们想要使用Postgres(MySQL是默认的),所以命令还输出了DB_CONNECTION=pgsql
,这也应该包含在内。
Redis™*
Redis™需要一些额外的依赖项(参见Laravel Redis文档),然后您可以设置REDIS_URL
为aiven:getconfig
返回的值。
OpenSearch®与Laravel Scout
这使用了某些Elasticsearch库,因为OpenSearch项目是一个分支,所以它们是相当兼容的。
-
添加 Explorer
-
固定你的PHP Elasticsearch库依赖,我在
composer.json
中有这个
"elasticsearch/elasticsearch": ">=7.9 <7.14",
aiven:getconfig
命令将只提供OpenSearch服务的连接字符串;将其放入config/explorer.php
中,使其看起来像这样
'connection' => "https://avnadmin:s3cr3t@servicename.aivencloud.com:port",
Scout文档对如何使你的模型可搜索有一个很好的概述,而Explorer项目添加了创建索引的命令。
故障排除
MySQL主键错误
Laravel的初始迁移假设你的MySQL数据库不强制执行主键(更多信息请见相关错误) - 如果你遇到这个问题,请在Aiven上禁用mysql.sql_require_primary_key
设置。
连接问题
如果你已经将配置添加到你的环境中,但仍无法连接,请检查你是否有以DB_
开头的其他环境变量...当使用DATABASE_URL
字段进行连接时,应移除如DB_HOST
这样的值。
取得联系
有问题?请打开一个issue并让我们知道。
商标
MySQL、OpenSearch、PostgreSQL和Laravel是各自所有者的商标和财产。本网站中使用的所有产品和服务的名称仅用于识别目的,并不表示认可。
/* Redis是Redis Ltd的商标。其中包含的所有权利均保留给Redis Ltd。Aiven Oy的任何使用仅用于参考目的,并不表示任何赞助、认可或与Redis和Aiven Oy之间的关联。