Laravel sqlite相对路径

时间:2019-09-04 10:59:59

标签: laravel sqlite

我想在多台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

2 个答案:

答案 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

以下是使用RedisPython 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