zoukankan      html  css  js  c++  java
  • Laravel Deploy to Heroku

    参考 https://devcenter.heroku.com/articles/getting-started-with-laravel

    即可

    注意的是,

    在使用pgsql的时候,

    database.php配置default 一定要修改mysql为pgsql 默认值 即使.env配置设置了pgsql也会报异常,

    其余的参考:


    <?php
    
    use IlluminateSupportStr;
    
    $DATABASE_URL =
        parse_url("postgres://*****.compute.amazonaws.com:5432/******");
    
    return [
        /*
        |--------------------------------------------------------------------------
        | Default Database Connection Name
        |--------------------------------------------------------------------------
        |
        | Here you may specify which of the database connections below you wish
        | to use as your default connection for all database work. Of course
        | you may use many connections at once using the Database library.
        |
        */
    
    //    'default' => env('DB_CONNECTION', 'mysql'),
        'default' => env('DB_CONNECTION', 'pgsql'),
    
        /*
        |--------------------------------------------------------------------------
        | Database Connections
        |--------------------------------------------------------------------------
        |
        | Here are each of the database connections setup for your application.
        | Of course, examples of configuring each database platform that is
        | supported by Laravel is shown below to make development simple.
        |
        |
        | All database work in Laravel is done through the PHP PDO facilities
        | so make sure you have the driver for your particular database of
        | choice installed on your machine before you begin development.
        |
        */
    
        'connections' => [
    
            'sqlite' => [
                'driver' => 'sqlite',
                'url' => env('DATABASE_URL'),
                'database' => env('DB_DATABASE', database_path('database.sqlite')),
                'prefix' => '',
                'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
            ],
    
            'mysql' => [
                'driver' => 'mysql',
                'url' => env('DATABASE_URL'),
                'host' => env('DB_HOST', '127.0.0.1'),
                'port' => env('DB_PORT', '3306'),
                'database' => env('DB_DATABASE', 'forge'),
                'username' => env('DB_USERNAME', 'forge'),
                'password' => env('DB_PASSWORD', ''),
                'unix_socket' => env('DB_SOCKET', ''),
                'charset' => 'utf8mb4',
                'collation' => 'utf8mb4_unicode_ci',
                'prefix' => '',
                'prefix_indexes' => true,
                'strict' => true,
                'engine' => null,
                'options' => extension_loaded('pdo_mysql') ? array_filter([
                    PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
                ]) : [],
            ],
    
            'pgsql' => [
                'driver' => 'pgsql',
                'url' => "postgres://****.compute.amazonaws.com:5432/*****",
                'host' => $DATABASE_URL["host"],
                'port' => $DATABASE_URL["port"],
                'charset' => 'utf8',
                'client_encoding' => 'utf8',
                'prefix' => '',
                'prefix_indexes' => true,
                'schema' => 'public',
                'sslmode' => 'require',
                'database' => ltrim($DATABASE_URL["path"], "/"),
                'username' => $DATABASE_URL["user"],
                'password' => $DATABASE_URL["pass"],
    //            'url' => env('DATABASE_URL'),
    //            'host' => env('DB_HOST', '127.0.0.1'),
    //            'port' => env('DB_PORT', '5432'),
    //            'database' => env('DB_DATABASE', 'forge'),
    //            'username' => env('DB_USERNAME', 'forge'),
    //            'password' => env('DB_PASSWORD', ''),
    //            'sslmode' => 'prefer',
    //            'charset' => 'utf8',
    //            'prefix' => '',
    //            'prefix_indexes' => true,
    //            'schema' => 'public',
    
            ],
    
            'sqlsrv' => [
                'driver' => 'sqlsrv',
                'url' => env('DATABASE_URL'),
                'host' => env('DB_HOST', 'localhost'),
                'port' => env('DB_PORT', '1433'),
                'database' => env('DB_DATABASE', 'forge'),
                'username' => env('DB_USERNAME', 'forge'),
                'password' => env('DB_PASSWORD', ''),
                'charset' => 'utf8',
                'prefix' => '',
                'prefix_indexes' => true,
            ],
    
        ],
    
        /*
        |--------------------------------------------------------------------------
        | Migration Repository Table
        |--------------------------------------------------------------------------
        |
        | This table keeps track of all the migrations that have already run for
        | your application. Using this information, we can determine which of
        | the migrations on disk haven't actually been run in the database.
        |
        */
    
        'migrations' => 'migrations',
    
        /*
        |--------------------------------------------------------------------------
        | Redis Databases
        |--------------------------------------------------------------------------
        |
        | Redis is an open source, fast, and advanced key-value store that also
        | provides a richer body of commands than a typical key-value system
        | such as APC or Memcached. Laravel makes it easy to dig right in.
        |
        */
    
        'redis' => [
    
            'client' => env('REDIS_CLIENT', 'phpredis'),
    
            'options' => [
                'cluster' => env('REDIS_CLUSTER', 'redis'),
                'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
            ],
    
            'default' => [
                'url' => env('REDIS_URL'),
                'host' => env('REDIS_HOST', '127.0.0.1'),
                'password' => env('REDIS_PASSWORD', null),
                'port' => env('REDIS_PORT', '6379'),
                'database' => env('REDIS_DB', '0'),
            ],
    
            'cache' => [
                'url' => env('REDIS_URL'),
                'host' => env('REDIS_HOST', '127.0.0.1'),
                'password' => env('REDIS_PASSWORD', null),
                'port' => env('REDIS_PORT', '6379'),
                'database' => env('REDIS_CACHE_DB', '1'),
            ],
    
        ],
    
    ];
    
    

    注意pgsql里url和client_encoding

    其次代码中的query查询不能使用lower(name) LIKE …. 直接使用name LIKE


    然后
    heroku run php artisan migrate前执行heroku run php artisan config:cache

  • 相关阅读:
    免费的视频、音频转文本
    Errors are values
    Codebase Refactoring (with help from Go)
    Golang中的坑二
    Cleaner, more elegant, and wrong(msdn blog)
    Cleaner, more elegant, and wrong(翻译)
    Cleaner, more elegant, and harder to recognize(翻译)
    vue控制父子组件渲染顺序
    computed 和 watch 组合使用,监听数据全局数据状态
    webstorm破解方法
  • 原文地址:https://www.cnblogs.com/dzkjz/p/13273217.html
Copyright © 2011-2022 走看看