我想在多台PC上部署我的应用程序,并且正在使用sqlite for db。 有没有办法在我的env文件中设置相对路径而不是绝对路径? 除了sqlite之外,还有其他可移植的数据库吗?
无论如何,都可以使用以下示例:
DB_DATABASE=${ variable/to/database/folder }/database.sqlite
代替:
DB_DATABASE=C:\wamp64\www\JUICE\projects\my-project\database\database.sqlite
答案 0 :(得分:1)
第一步,在.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
进行本地开发。
答案 1 :(得分:0)
默认数据库配置已经包含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之外,还有其他可移植的数据库吗?
您可以将任何数据库(如MySQL)导出为填充数据的.sql
文件,并将其推送到git repo
以下是使用Redis的Python Script进行此操作的示例
# 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