rake db:reset
がherokuではできないので下記。
$ heroku pg:reset DATABASE_URL --confirm my-app
rake db:reset
がherokuではできないので下記。
$ heroku pg:reset DATABASE_URL --confirm my-app
コレ。
こうだと蓋のヒンジ?の部分が袋の下になるから、
中に折り込んで、こうじゃない?
そしたらこう綺麗に蓋が付くし。
口で説明しづらいし、何度も言いそうなのでブログに書いてみました。
forkしたreposへのcommitはgithubの活動の証(プロフィールページが緑になる)にならないみたいなのでlokkaをorganizationに移す時にowner transferしたんですが、そのせいで誰がcollaboratorだかわからなくなった。
% git shortlog -s -n
248 Masaki KOMAGATA
167 Masaki Komagata
89 yayugu
54 tomykaira
52 komagata
32 Teppei MACHIDA
27 Ayumu AIZAWA
24 Junya Ishihara
23 nkmrshn
22 Shota Fukumori (sora_h)
18 machida
13 Takeshi Yabe
12 arton
10 tkawa
8 八木都志郎
7 Satoshi Ebisawa
6 Hiroshi Yoshida
6 Junya Ogura
5 Masanori Kobayasi
5 teppei machida
5 森井ゴンザレス
4 酒井 英禎
4 Daic_h
4 Motoki Ito
4 Paul McMahon
4 u
3 kano4
3 toshiro
2 hirocaster
2 elm200
2 Teppei Machida
2 rono23
2 sanemat
2 Shota Fukumori
2 Noriaki UCHIYAMA
2 Daishi Kato
1 sudokohey
1 HIROKI
1 Naoto Takai
1 add20
1 horaotoko
1 unknown
これを元にサルベージ。
大江戸Ruby会議03で飯食ってる時に、
@hrysd「Lokka、Organizationにしたらどうですか?」
@komagata「Organizationアカウント?良いねえ、オシャレだねえ」
ということでLokkaのOrganizationアカウント作ってそっちへ移行しました。
今までCollaboratorだった方を後で追加しておきます。
先々週ぐらいから復活してLokkathonやってますが今はもっぱらDatamapperからActiveRecordへの移行をactive-recordブランチでやってます。
ruby2.0.0-p0にしたらテストが通らなくなって、Datamapper関係で引っかかってるんですが、Datamapperはdatamapper2がもう出ちゃってるし、これメンテするのダルいぁと思ってたところに@hrsydがActiveRecordで大体動くbranchを作ってたのでそれに乗っかりました。あとtestを76個ぐらい通せば移行できそうです。
$ brew upgrade ruby-build
$ rbenv install 2.0.0-p0
$ rbenv global 2.0.0-p0
$ brew install curl-ca-bundle
$ cp /usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt /usr/local/etc/openssl/cert.pem
$ gem install bundler rbenv-rehash
Rails Best PracticesのLaw of demeterを直してる時に結構出てくる。
class Award < ActiveRecord::Base
belongs_to :story
delegate :user, :user_name, to: :story, prefix: true
end
class Story < ActiveRecord::Base
belongs_to :user
delegate :name, to: :user, prefix: true
has_many :awards
end
class User < ActiveRecord::Base
has_many :stories
end
>> Award.find(1).story_user_name # => "komagata"
これは分かりやすくなってる!・・・のかな・・・。
starseekerのフィード見てて、
・・・えっ?
・・・え?・・・・え!?
・・・・・・・・・・・・・・・・。
RailsでDBのデータ変更はどこに書く? - komagataの続き。
コメント欄やFacebook、Twitterなどで色々教えていただきありがとうございます!
ちょっとFBの過去ログ見つからないんですが確か@kdmsnrさんが
「Rails Wayにseed.rbではdelete_all
しろと書いてあった」
と仰ってました。
つまり、rake db:seed
はproductionで毎回実行する。リエントラントに書くってことですな。
自分のプロジェクト(怖話)でも、今までInsertSeedMigrationみたいに書いてたのをrakeタスクとseedに移すように書きなおしてます。
どういう時に何が困ってたのかやっと自分の中でまとまってきたんですが、要は、
「最初の3人のユーザー」とか「最初の10件のPOST」とか「productionで後々増えていくデータの初期データ」をどうするのか?ってことでした。
User.delete_all
してUser.create!
をseedに書くとproductionで他のUserが消えちゃうし。seedでif Rails.env.production?
する?
Title only.
怖話でAndyというユーザー名で登録しようとするとエラー。
Mysql2::Error - Duplicate entry 'Andy' for key 'index_users_on_name'
多分小文字のandyとぶつかってるんだろうな。
validates :name, uniqueness: true
してるのに何故だろう。mysqlのcollationが変なのになってるのかなと確認してみるも問題無し。
uniquenessを確認している部分のSQLクエリをみてみると・・・
SELECT 1 AS one FROM `users` WHERE `users`.`name` = BINARY 'Andy' LIMIT 1
BINARY・・・だと・・・!?
deviseの設定でcase_insensitive_keysを設定しないとBINARYで確認しにいくようです。
# config/initializers/devise.rb:
config.case_insensitive_keys = [ :email, :name ]
ここにnameも追加してOK。configのコメントぐらいちゃんと読んどけってことですな。