Category: ‘heroku’

Heroku に登録済みのアプリから、git:cloneする方法

2015年3月6日 Posted by PURGE

既にHerokuに存在するアプリを、別のPCでも修正したい為に、Herokuのレポジトリから、git:clone する方法の覚え書き。

c:\Works>heroku git:clone --app myHerokuApp MyHerokuApp
Cloning from app 'myHerokuApp'...
Cloning into 'MyHerokuApp'...
remote: Counting objects: 694, done.
remote: Compressing objects: 100% (618/618), done.
rReceiving objects:  88% (611/694), 164.00 KiB | 147.00 KiB/s   emote: Total 694
Receiving objects:  92% (639/694), 164.00 KiB | 147.00 KiB/s
Receiving objects: 100% (694/694), 236.61 KiB | 147.00 KiB/s, done.
Resolving deltas: 100% (338/338), done.
Checking connectivity... done.

Heroku エラー

2013年8月11日 Posted by PURGE

ローカルの開発環境では動作しているアプリが、herokuにデプロイすると動作せずに下記エラー。

$heroku logs -t

at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxxx.herokuapp.com fwd="111.111.111.111" dyno= connect= service= status=503 bytes=

一度、アプリ自体を削除したが、同様のエラー。

結局、ローカルの環境から作成しなおした。
かなり面倒臭かった。原因不明。

rails rake db:migrate でカラム名変更

2013年8月7日 Posted by PURGE

まずは、マイグレーションファイルの自動生成。

rails generate migration RenameColumnToTargetTable

すると、下記のマイグレーションファイルが生成される。
ちなみにファイル名は環境によって異なる。

2013080112000000_rename_column_to_target_table.rb

class RenameColumnToTargetTable < ActiveRecord::Migration
  def change
    rename_column :target_table, : old_column, :new_column
  end
end

マイグレートの実行。

rake db:migrate

rake db:migrateを使用しての、運用中のDBへの更新は初めてで怖かったのであるが、難なく成功。

当然、migrate実行する前に、必ずバックアップ取っておいてね。

Herokuで使用しているClearDBへの接続

2013年6月1日 Posted by PURGE

個人的には MySQLが好きなのであるが、Herokuでは、デフォルトのDBが、Heroku Postgres になっている。
そこで、Heroku Add-onである ClearDBというMySQLアドオンを設定して利用してみる。

まずは、Herokuサイトにてログインして、ClearDBをアドオンしてみる。Igniteであれば 5MB無料で利用できる。

そして、Heroku Toolbeltコマンドラインからログインし、アドオンされた ClearDB の設定情報を確認してみる。

$ heroku config | grep CLEARDB_DATABASE_URL
CLEARDB_DATABASE_URL: mysql://userid:password@hostname.cleardb.com/heroku_12345?reconnect=true

上記の値を、DATABASE_URL (デフォルトではPostgresが設定されている)で上書き設定する。
注意点としては、使用するMySQLによって、 mysql2:// に変更すること。

$ heroku config:add DATABASE_URL='mysql2://userid:password@hostname.cleardb.com/heroku_12345?reconnect=true

問題なく設定できていれば、git pushしたアプリのmigrationが成功するはずである。

$ heroku run rake db:migrate

尚、上記の設定情報からもわかるように、MySQLツールにて設定すれば直接DBが参照可能となる。

rails migrationファイルの作成

2012年8月8日 Posted by PURGE

テーブル定義の更新をする為に、普段は直接DBに接続して、alter table 等のSQLコマンドで定義を変更していたのだが、heroku においては、直接DBに接続する手段を未だ設定していないので、勉強を兼ねて、migrationファイルにてテーブル定義を変更しようと思う。

c:> rails generate migration ChangeColumnLengthFnameInMembers

すると、migrationファイルが作成される。
db/migrate/20120808XXXXX_change_column_length_fname_in_member.rb
ファイル名が長い・・・。

class ChangeColumnLengthFnameInMembers < ActiveRecord::Migration
  def up
  end

  def down
  end
end

up / down のメソッドがあるmigrationファイルが生成されるので、下記を追加する。
今回は、項目長さを変更することとする。

class ChangeColumnLengthFnameInMembers < ActiveRecord::Migration
  def up
    change_column :members, :fname, :string, :limit => 128, :null => false
  end

  def down
  end
end

そして、マイグレーションコマンド。

c: > rake db:migrate

うまくいったようだ。

herokuでMysqlを使う

2012年7月19日 Posted by PURGE

herokuでは、デフォルトのストレージとして、共有データベースというPostgreSQLのデータベースを5MB無料で用意している。

開発はMysqlを利用しているので、ぜひherokuでもMysqlを使用したい。そんな時は、herokuのAdd-onsの一つであるClearDBというアドオンを利用できる。これもまた5MBまで無償で利用できる。

ClearDBは、herokuのWeb画面からもアドオン追加できる。
設定方法は、サイト上のドキュメントを見れば記載されているが英語である。

とりあえず、手順の覚書。

まずはherokuログイン。

C:\HerokuTest>heroku login
Enter your Heroku credentials.
Email: xxxx@whoocus.com
Password (typing will be hidden):
Authentication successful.

grepで設定されているDATABASE_URLを調べてみる。
すると、現在のデータベースDATABASE_URL(PostgreSQL)とアドオンしたClLEARDB_DATABASE_URL(Mysql)と共有データベースSHARED_DATABASE_URL(PostgreSQL)のURLをが見ることができる。

C:\HerokuTest>heroku config | grep DATABASE_URL
CLEARDB_DATABASE_URL: mysql://xxxxx:xxxx@us-xx-east.cleardb.com/heroku_1234?reconnect=true
DATABASE_URL:postgres://xxx@xxx.compute-1.amazonaws.com/xxx
SHARED_DATABASE_URL:postgres://xxx:xxx@1234.comput
e-1.amazonaws.com/xxx

そこで、DATABASE_URLをClearDBのURLで書き換える。
気を付けるのは、URLの’mysql://’ → ‘mysql2://’ のように、対応しているgemのバージョンに合わせる。

C:\HerokuTest>heroku config:add DATABASE_URL='mysql2://xxxxx:xxxx@us-xx-east.cleardb.com/heroku_1234?reconnect=true'
Setting config vars and restarting heroku-test... done, v9
DATABASE_URL: mysql2://xxxxx:xxxx@us-xx-east.cleardb.com/heroku_1234?reconnect=true

そこで、herokuでDBのマイグレーション。

C:\HerokuTest>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.1

おそらく以上で、Mysqlを認識することでしょう。

heroku 新規開発環境での環境構築

2012年7月11日 Posted by PURGE

herokuにアカウントを持って、別PCへ新規の開発環境を作成する手順。
元々、Macで開発を開始して、別ローカルPC(WindowsXP)にて環境構築する必要が出てきた。
とりあえず、Heroku Toolbelt をインストールして、コマンドラインから下記を実行。

C:\works>heroku login
Enter your Heroku credentials.
Email: xxxx@whoocus.com
Password (typing will be hidden):
Authentication successful.

そしてSSHキーを作成する。当然お初の環境なので、新規のPublic keyを発行する。

C:\works>heroku keys:add
Could not find an existing public key.
Would you like to generate one? [Yn] Y
Generating new SSH public key.
Uploading SSH public key C:/Documents and Settings/xxxx/.ssh/id_rsa.pub... done

すると、Windowsなので、ユーザフォルダ直下(C:\Documents and Settings\xxxx\.ssh)に、.sshフォルダ一式が作成される。
これでssh認証される。なんと簡単なことでしょう。

そして、git cloneコマンドにて、ローカルPC環境に複製する。

C:\works>git clone git@heroku.com:xxxx.git AppName
Cloning into 'XXXXX'...
Warning: Permanently added the RSA host key for IP address '99.99.99.999' to the list of known hosts.
remote: Counting objects: 413, done.
remote: Compressing objects: 100% (306/306), done.
remote: Total 413 (delta 140), reused 247 (delta 69)
Receiving objects: 100% (413/413), 94.00 KiB | 14 KiB/s, done.
Resolving deltas: 100% (140/140), done.

これで完了。

gitエラー ‘heroku’ does not appear to be a git repository

2012年6月27日 Posted by PURGE

よく理解せずにheroku と gitを使用していると、表題のエラーとなてしまった。どうやらお手本通りにやって、heroku というレポジトリで操作していたらしいが、git remote add するようだ。

C:\works\Hoge>heroku info
=== hoge
Addons:        Shared Database 5MB
Database Size: (empty)
Git URL:       git@heroku.com:hoge.git
Owner Email:   hoge@xxxx.jp
Repo Size:     8M
Slug Size:     10M
Stack:         cedar
Web URL:       http://hoge.herokuapp.com/

C:\works\Hoge>git push heroku master
fatal: 'heroku' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

C:\works\Hoge>git remote add hoge git@heroku.com:hoge.git

C:\works\Hoge>git push hoge master
Counting objects: 208, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (178/178), done.
Writing objects: 100% (190/190), 34.40 KiB, done.
Total 190 (delta 56), reused 0 (delta 0)

後でちゃんとgitコマンドについては理解しておこうと思う。

gitリモートレポジトリからソースの取得

2012年6月27日 Posted by PURGE

herokuを使い始めた。
別のノートPCで、herokuにリモートレポジトリから取得する方法の覚書。ちなみに、ノートPC環境はWindowsXP。

結構調べるのに時間が掛かったが、Subversion の checkoutコマンドのようなもの。リモートリポジトリからローカルに初めてソースを取り出す為に使用する。

git clone git@heroku.com:heroku-test.git HerokuTest

git clone リポジトリURL 作成フォルダ