aiven/aiven-laravel

此包已被废弃,不再维护。没有推荐替代包。

Aiven数据库和Laravel的Artisan助手

v1.0.0 2021-10-06 20:12 UTC

This package is auto-updated.

Last update: 2023-08-06 15:54:16 UTC


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也使其非常直接。

  1. .env中删除所有以DB_开头的配置条目

  2. 粘贴aiven:getconfig命令的输出。对于MySQL和PostgreSQL,这是DATABASE_URL。对于PostgreSQL,我们需要告诉Laravel我们想要使用Postgres(MySQL是默认的),所以命令还输出了DB_CONNECTION=pgsql,这也应该包含在内。

Redis™*

Redis™需要一些额外的依赖项(参见Laravel Redis文档),然后您可以设置REDIS_URLaiven:getconfig返回的值。

OpenSearch®与Laravel Scout

这使用了某些Elasticsearch库,因为OpenSearch项目是一个分支,所以它们是相当兼容的。

  • 使用 Laravel Scout

  • 添加 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之间的关联。