LoginSignup
6
5

More than 5 years have passed since last update.

HerokuでLumen + Postgres.

Last updated at Posted at 2015-05-26

HerokuにLumen+Postgresの環境を作ってみる。

前提条件

  • ブラウザからherokuへログインして「fooo」というアプリ作成済み。

Lumenインストール

Composerでローカルに落とす。

% composer create-project laravel/lumen --prefer-dist herokuLumenTest

Herokuへデプロイ

Procfile追加

% cd herokuLumenTest
% vi Procfile
Procfile
vendor/bin/heroku-php-apache2

Herokuログイン

% heroku login
Enter your Heroku credentials.
Email: hoge@hoge.com
Password (typing will be hidden): 
Authentication successful.

Commitする

% git init
% heroku git:remote -a fooo
% git add .
% git commit -am '1st commit.'
% git push heroku master

https://fooo.herokuapp.com/ 
Lumen画面表示確認。

DB

heroku-postgresでDB作る

Herokuのサイトで作る。

DB情報をHeorokuに設定

% heroku config:add DB_HOST=ec2-000-00-000-000.compute-0.amazonaws.com
% heroku config:add DB_DATABASE=databasename                        
% heroku config:add DB_USERNAME=username
% heroku config:add DB_PASSWORD=password
% heroku config
=== fooo Config Vars
DB_CONNECTION: pgsql
DB_HOST:       ec2-000-00-000-000.compute-0.amazonaws.com
DB_DATABASE:   databasename
DB_PASSWORD:   username
DB_USERNAME:   password

Migrate作成

# heroku run php artisan migrate:install

Postgres用のGUIアプリをインストール

pgAdmin3 MacOSX版をインストール

設定

ファイル->サーバーの追加

スクリーンショット 2015-05-26 14.02.08.png

接続してみるとmigrationsテーブルができているのが確認できる。

スクリーンショット 2015-05-26 15.21.52.png

マイグレーションファイル作成(ローカルに作る)

php artisan make:migration create_customers_table

database/migrationsにマイグレーションファイルができるので編集

2015_05_26_053458_create_customers_table.php
    public function up()
    {
        Schema::create('customers', function(Blueprint $table)
        {
            $table->increments('id');
            $table->integer('user_id');
            $table->string('name');
            $table->string('memo');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::drop('customers');
    }

Seederファイル作成

vi database/seeds/CustomerTableSeeder.php
CustomerTableSeeder.php
<?php

use Illuminate\Database\Seeder;
use App\Customer;

class CustomerTableSeeder extends Seeder {

    public function run()
    {
        DB::table('customers')->delete();
        Customer::create(['user_id' => 1, 'name' => '田中', 'memo' => '高岡市在住']);
    }

}
database/seeds/DatabaseSeeder.php
DatabaseSeeder.php
<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();
        $this->call('CustomerTableSeeder');
    }

}

Customerクラス作成

vi app/Customer.php
Customer.php
<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Customer extends Model {
    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'customers';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['name', 'memo'];
}

Herokuへデプロイ&マイグレーション実行

% git push heroku master
% heroku run php artisan migrate:refresh --seed

スクリーンショット 2015-05-26 16.31.39.png

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5