2008年11月アーカイブ

wowow RO15で何気なくbonobosを聴いた。懐かしいー。


先日作ったrailsアプリtestappをherokuにアップする。

アプリケーションの作成とアップロード

1)testappディレクトリをコピー
2)コピー先のenvironment.rbを書き換える。
local環境のrailsは2.1.2だが、herokuは2.1.0なので、下記ファイルのバージョン部分を書き換える。

config\environment.rb

RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION
 ↓
RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION

3)下記2フォルダを削除
testapp\log
testapp\tmp

4)testappディレクトリをtar.gzで圧縮する
Explzhでtgz形式にて圧縮後、拡張子をtar.gzにする

5)herokuに新規アプリケーションを作ってインポート

heroku-05.pngMy Appsに前回作った「cho-test」アプリケーションがあるので、横の「settings」ボタンをクリック後、「Import & Export」タブをクリック
Importの「参照」ボタンをクリックし、4)で作ったtar.gzファイルを選択し、Uploadボタンをクリック





6)動作確認

heroku-06.png

アップロードが完了すると、ローカルで作成したアプリケーションのWelcome aboardが表示される。








heroku-07.png

urlをhttp://cho-test.heroku.com/members/にして見てみる。

動いてるみたいなのでおけ。









データのエクスポートとインポート

1)yaml_dbプラグインのインストール
herokuの説明では、ローカルデータをyaml形式にダンプしてくれるyaml_dbをインストールしれと書いてあるんだけど、
ruby script\plugin install git://github.com/adamwiggins/yaml_db.git
ではインストールがされない。
実行してもtestapp\plugin以下に入ってない。

githubのyaml_dbからダウンロードしてplugin\yaml_db以下に入れる。(ダウンロードもなぜかnot foundとかになったけど、何回かやったら落とせた)

2)データのダンプ
下記を実行すると、db\data.ymlというファイルができる。

rake db:data:dump

3)herokuにアップ

heroku-08.png

herokuのedit→dataタブに「Import data.yml」という箇所があるので、「参照」ボタンをクリックして2)のdata.ymlを選択し、「Import」ボタンをクリックする

The uploaded data.yml was imported.

と表示されたらアップ完了




Codeタブで歯車をクリックして「Rake」を選択すると別ウィンドウでRakeコンソールが出てくるので、下記を実行。

db:data:load

4)確認

heroku-09.png

再度http://cho-test.heroku.com/members/表示してみてデータが入ってれば完了。



1)herokuで新規アプリケーションを作成

heroku-01.png

My Appsで「Create New App」ボタンをクリック







2)できたアプリケーションを編集する

heroku-02.png

新規にRailsアプリケーションが作成されて起動されるので、「Edit your app」リンクをクリックする。






3)Edit画面

Railsのフォルダ構成ができていて、各フォルダの中のソースを直接編集が可能。
また、歯車マークをクリックすると「Generate」、「Console」、「Rake」などのコンソールが開け、scaffoldを作成したり、rake:migrateしたりできる。
デフォルトで「untitled-xxxx」のようなアプリケーション名がついていて、左上に表示されているので(画像からは消してある)、それをクリックするとアプリケーションのsetting画面が表示される。

4)アプリケーションの名前を変更

heroku-04.png

「untitled-xxxx」.heroku.comのテキストを「cho-test」に変更し、「Rename」ボタンをクリックすると、http://cho-test.heroku.com/でアクセスできるようになる。

rails動くbluehostとかherokuが2系なのでもう2にしちゃう。

昨日railsは2.1.2いれたので、アプリを一個つくる。

>rails testapp

ここ参考にscaffoldからやる。

>cd testapp
>ruby script\generate scaffold Member name:string age:integer

migrateファイル作ってscaffoldじゃないのでやっぱ慣れない。

testapp\db\migrate以下にmigrateファイルができる。
001_とかじゃなくなって日付なのね。にしては昨日の日付だ。GMTなのけ?
20081114215145_create_members.rbっていうファイル名になっとる。

書式が前と違うけど、まあ分かればいいや。

class CreateMembers < ActiveRecord::Migration
  def self.up
    create_table :members do |t|
      t.string :name
      t.integer :age
      t.timestamps
  end
  def self.down
    drop_table :members
  end
end

dbテーブル作成

>rake db:migrate

rails起動

>ruby script\server

起動はした。
http://localhost:3000/にアクセスして、とりあえず見れる。
http://localhost:3000/members/にアクセスしたらsqllite3がねえって怒られた。

>gem install sqlite3-ruby

エラーになる。

sqlite3-rubyとWindows

最新版(1.2.4)はまだWindowsに対応していないらしく1.2.3をインストールせねばならない。
>gem install sqlite3-ruby --version '= 1.2.3'

これでOK。

なるほどと。sqlite3は入った。
http://localhost:3000/members/に再度クセス、エラーダイアログがでる。


sqlite3.dllが見つからなかったため、このアプリケーションを開始できませんでした。
アプリケーションをインストールしなおすとこの問題は解決される場合があります。

なんか・・・、うん、再起動してきます。

・・・再起動してきました。直るかと思ったけどダメっぽいので調べる。

こことかこことかみるとdll持ってきて入れるとかあってなんか悔しいんですけど、ここみて納得。

なんか新しい環境作るときに手順増えるのいやなのー。

まあでもしょうがなさそうなので、SQLiteからsqlite3.exeとsqlite3.dllダウンロードして入れる。system32とか嫌なので、ruby\binに突っ込んだ。これも本当はやだけど。わがままですいません。

mysqlあるんだからそっち使っとけば良かったような気もするけど、database.ymlいじらなくてさくっと動く環境もほしいのでまあいっかー。

で、とりあえず動くようになりますた。

rails2_scaffold.png

ってか、rake db:migrateするの忘れてたので手順修正。

今おさわり中。

generateしたらバージョン出てきたよ。

ブラウザの開発環境でるってすげいね、これw

ホスティングサーバーで作ったrailsアプリがうごかんので、サーバー側ごにょごにょしてハマって疲弊している時に何を血迷ったのか、動いているローカルのrailsのバージョンをサーバー側にあわせて変えてしまった。

>gem install -v=2.1.2 rails
>rake rails:update
>gem update --system

500 Internal Server Error

今は反省している。

動かないよー。

結城さんのリファクタリングの本に書いてあった「ステップバイステップ」という言葉が身に染みます。

windows環境のrailsにアプリを追加して、

>rake migrate

しようとしたら下記エラー発生。

Client does not support authentication protocol requested by server; consider upgrading MySQL client

なんか前にもみたことあるなあー。
とりあえずぐぐる。

A.2.4. Client does not support authentication protocol エラー

この問題を解決するには、以下のいずれかを行ってください。


  • 全クライアントプログラムをアップグレードして、4.1.1 以降のクライアントライブラリを使用するようにする。
    →やだ、だって前動いてたもん。

  • 4.1 より前のクライアントから接続する場合は、旧パスワードでユーザアカウントを使用する。
    →railsが4.1より前のクライアントかわかんない。

  • 4.1 より前のクライアントを必要とするユーザをリセットし、旧パスワードを使用するようにする。
    →前動いてたし、4.1より前使ったことないし。

  • サーバが旧パスワードハッシュアルゴリズムを使用するように指定する。
    --old-passwords を指定して mysqld を開始する。
    →ん、この辺触ったような気がする。でもチェックつけてもエラー変わんない

【結論】
ユーザー名とパスワード一緒にしたらだめってだけでした。
手抜きしたらあかんね。

CentOSにscrapiが入ってなかったのでインストールしますた。
gemでさくさくっと。
#gem install scrapi
Bulk updating Gem source index for: http://gems.rubyforge.org/
Successfully installed tidy-1.1.2
Successfully installed scrapi-1.2.0
2 gems installed
Installing ri documentation for tidy-1.1.2...
Installing ri documentation for scrapi-1.2.0...
Installing RDoc documentation for tidy-1.1.2...
Installing RDoc documentation for scrapi-1.2.0...

requireできないのでなぜかなーと思ったらパスが通ってないみたい。
環境変数って自分で追加せんとあかんものなのかね。
環境作るたびに手順が増えるの面倒なのでとりあえず下記で逃げ。
require 'rubygems'



2ちゃんねるファービースレまとめサイト
ファービーが「ナデナデシテー」ってうるさいから
頭の上にマッサージ器あてて死ぬほどナデナデしたら
「ファー...ブルスコ...ファー...ブルスコ...ファ-」ってなった。

最初は面白かったんだけど、なんかキモくなったので首元を横から思い切りチョップした

「モルスァ」みたいなこと言いながらすごい勢いで飛んで行った。

ファー、ブルスコー
ファー、ブルスコー

・・・モルスァ・・・!!

アバウト更新したらtopの記事がなくなってしもた。

無色になりました。

プログラムいくつか書きました。

喉がおかしいです。

人生最大のポンチ絵です。

20081108181234

イチョウです。

たぶん去年の。

このアーカイブについて

このページには、2008年11月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年9月です。

次のアーカイブは2009年4月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。