备份和恢复PostgreSQL数据库,并在Windows 7中使用laravel设置本地主机环境



1( open C:\Program Files\PostgreSQL\12\data\pg_hba.conf

改变: 主机全部 ::1/128 MD5

托管所有 ::1/128 信任

2(打开pgAdmin并创建一个本地主机服务器,用户名为postgres,密码将为空

/* 用于备份或还原现有数据库名称的转储 */

打开cmd行,然后转到C:\Program Files\PostgreSQL\12\bin,然后按回车键

并根据需要键入以下命令

备份 : pg_dump.exe -U postgres -d dbname -f D:\Backup\

or direct take backup using pgAdmin backup option and store in D:Backup<backup-file-name>  
hint: backup file should be tar or dump type

恢复备份:pg_restore -U postgres -d dbname -1 D:\Backup\

3(在laravel代码文件夹中打开.env文件并添加DB_SSLMODE=禁用

4(在Laravel代码文件夹中打开配置/数据库.php并为"pgsql"数组

replace
'sslmode'=> 'require', 
to    
'sslmode' => env('DB_SSLMODE','require'),

如何在Laravel中备份PostgreSql DB

  1. 使用作曲家安装 Laravel 软件包。

    composer require spatie/laravel-backup

  2. 将以下行插入备份控制器。

    use SpatieDbDumperDatabasesPostgreSql;

  3. 在备份控制器中编写以下代码。

    date_default_timezone_set('EST');
    try {
    $this->info('The backup has been started');
    $backup_name = 'backup-' . date('c')  . '.sql';
    $backup_path = 'app/backups/' . $backup_name;
    PostgreSql::create()
    ->setDbName(env('DB_DATABASE'))
    ->setUserName(env('DB_USERNAME'))
    ->setPassword(env('DB_PASSWORD'))
    ->dumpToFile($backup_path);
    $this->info('The backup has been proceed successfully.');
    } catch (ProcessFailedException $exception) {
    logger()->error('Backup exception', compact('exception'));
    $this->error('The backup process has been failed.');
    }
    

最新更新