我想在多台电脑上部署我的应用程序,并且它使用 sqlite 作为数据库。 有没有办法在我的环境文件中设置相对路径而不是绝对路径? 有没有除了 sqlite 以外的替代方案来拥有便携式数据库?
无论如何都有使用这样的东西的例子:
DB_DATABASE=${ variable/to/database/folder }/database.sqlite
代替:
DB_DATABASE=C:\wamp64\www\JUICE\projects\my-project\database\database.sqlite
第一步注释掉.env中的DB_DATABASE:
#DB_DATABASE=homestead
其次,检查
config/database.php
中是否有这个,它是 laravel 附带的代码:
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
并且您拥有相对于应用程序根目录的数据库路径,并随着应用程序目录的变化而变化,因为您依赖于路径助手
database_path()
。
我无法给你任何替代方案,我满意地使用
sqlite
进行本地开发。
默认数据库配置已包含 sqlite 数据库文件的相对路径
'database' => env('DB_DATABASE', database_path('database.sqlite')),
现在使用您的
.env
变量重命名文件,但保留相对路径,您可以这样做
.env
DB_DATABASE=different-name.sqlite
config/database.php
'database' => database_path(env('DB_DATABASE')),
除了sqlite之外,还有什么替代品来拥有可移植的数据库吗?
# dump database 0
./redisdl.py > dump.json
./redisdl.py -o dump.json
# load into database 0
./redisdl.py -l < dump.json
./redisdl.py -l dump.json
我可以确认以下内容适用于最新版本的 Laravel。
在 config/database.php 中,使用 database_path() 帮助程序修改数据库键/值对:
'database' => env('DB_DATABASE', database_path('database.sqlite')),
使用 Windows 和 Laravel 10 进行测试运行 pwd 命令获取完整路径,然后在数据库文件夹中创建 sqlite 文件。
环境文件
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=E:\WebProjects\myProject/database/database.sqlite
DB_USERNAME=root
DB_PASSWORD=