4児パパ プログラミングを学ぶ

プログラミングは未経験で30歳過ぎても学べる!

マイグレーションファイル t.timestamps rails 5ではデフォルトでnot null制約

f:id:hitoiws:20180105213448j:image 

 

あけましておめでとうございます!

今年もどうぞ宜しくお願い致します!

 

さて、まだまだ寒い中今年ももう1週間が終わろとしていますね。私は今外資系に勤めている為、今年はTOEICの得点の更新をしなくてはなりません。そんな中でも時間を見つけて今年もRailsの開発も進めています。

 

 

英語自体育ってきた環境に恵まれて得意です。プログラミングはほぼ英語で構成されていますので、その点でも本当に恵まれてきました。今後も英語でコミュニケーションが出来る環境で、本業の傍らエンジニアとしても活動していく所存です。

 

それと同時にもちろん家族と楽しく過ごす為にも、家庭内で旅行するなどのイベントも考えています。話は変わりますが、今年は戌年。犬が大好きです。犬をこっそり買ってきて驚かそうかなと思っていたりしています。笑

 

  

■目次

1.Rail4からRails5に移行する便利になるが困ることもある。

2.Rails5からmigration version機能が追加

3.rails g model後はrails db:createを!

4.プログラミングを学びながら、ブログを楽しむ

5.教わる立場から教える立場へ

 

 

1.Rail4からRails5に移行する便利になるが困ることもある。

 Rails4に慣れしたむといざRails5に移行し開発したりすると、様々な場面にて仕様が変わっていて戸惑うかもしれません。私が最初に戸惑ったのは、associationの機能にて困り果てましたが、ググったり当時Dive Into Codeで学ばせて頂いていたメンターさんに助けて頂き解決致しました。Qiitaにて投稿しておりますので、ぜひ参考にして頂けましたら幸いです。

qiita.com

 

  

目次にもどる

 

2.Rails5からmigration version機能が追加

rails g modelコマンドでマイグレーションlを作成されたときに、Rails4系とRails5系では挙動が違います。Rails4ではtimestampsメソッドのデフォルトはt.timestamps null: false。新しくテーブルを作成する為に、作られたマイグレーションファイルには、このt.timestamps null: falseが自動的に書かれます。

f:id:hitoiws:20180105112000p:plain

 

一方Rails5系で作成されたマイグレーションファイルでは、timestampsがデフォルトでnot null制約になっている。

f:id:hitoiws:20180105112343p:plain

 

Rails5で作成されたフィルにては、ActiveRecord::Migration[5.1]と書かれ、バージョンがわかる様になっている。この機能の良い点はマイグレーションのAPIを挙動した時に、新しいバージョンは新しいバージョンにての挙動を、古いバージョンでは古いバージョンの挙動を。既存のもの壊すことなく、開発できるということですね。

 

以下のサイトから参考にさせて頂きました。 

Rails 5から導入されたmigration versioingについて | 日々雑記

 

geekhmer.github.io

 

目次にもどる

 

3.rails g model後はrails db:createを!

f:id:hitoiws:20180105203151p:plain

 

rails new プロジェクト名 で新しくrailsプロジェクトを作成する際、データベースの種類の指定無しだとsqliteがデフォルトになりますが、postgresqlを指定し開発した最初のmodelを作成したら、rails db:create でデータベースを作成する必要があります。でないと、ActiveRecord::NoDatabaseError (FATAL: database "プロジェクト名" does not exist とデータベースがないよとエラーが出ます。

 

f:id:hitoiws:20180106220224p:plain

モデル作成の手順として、

  1. rails g model モデル名 で実行後、
  2. マイグレーションファイルを編集したら、
  3. rails db:create でデータベースを作成
  4. $rails db:migrate もしくはローカル環境で作成してますので、エラーメッセージから読み取り、$rails db:migrate RAILS_ENV=development
  5. データベースが作り上がると、以降は1をし、4だけのコマンドで完了。

 

ActiveRecord::PendingMigrationError が出ましたら、$rails db:migrate を。

qiita.com

 

Railsでは、データベースに反映されていないマイグレーションファイルが存在する状態で、どこかのページにアクセスすると以下のようなマイグレーションエラーが発生してしまいます。そのため、マイグレーションファイルを作成した場合は必ず「rails db:migrate」を実行する必要があります。 "progtaeより参照"

 

 

備忘録として参考までにこちらのブログにて、残しておきます。

 

目次にもどる

 

4.プログラミングを学びながら、ブログを楽しむ

私はプログラミングに可能性を見出し、まず独学で学びプログラミングスクールでも学びました。 本当に初心者でした。ただMacbookが欲しくて、でもいざ手に入れた先せっかくなら、もっと面白い事に挑戦しようと思いたち、始めました。 

 

プログラミングをやり始めると、ブログで自分で躓いたエラーなど書き残すと、同じエラーで躓いた人の解決への一歩に繋げることができます。エラーは誰も好きにはなれないが、エラーメッセージと友達(言い過ぎかもしれませんが)になれば、エラーの元を見つけることができます。

 

Railsって環境構築でまず躓きます。Rubyのインストール(macはもともと入っているが、プロジェクトによって他のバージョンもインストールしないといけない)も必要で、Xcode のインストール、Command Line Tools をインストール、Homebrew のインストール RVMの除去、rbenvの設定を行うなど幸いにも、なんとか環境構築ができても、バージョンが変わっていくと環境構築のメンテに時間を追われます。今でも環境構築が苦手です。苦笑

 

 

楽しみも何か困難な事に立ちはだかると、億劫になってしまい苦手になってしまうかもしれません。ですので、時たまブログで苦労した事、学んだ事を記録しておけば、それらが励みになるかもしれません。

 

 

また、ブログでちょっとした小遣い稼ぎもすることができます。芸能人レベルですと月に何百万というぐらい稼げれるほど、面白いものです。ただそこまでいかないと言えど、月に1万は稼げれるようになります。月5万を副収入として得られるようになると、生活も楽しくなります。

 

月5万を副業を在宅で稼ぐ過去の記事を参考にして頂けましたら幸いです。

www.papa-programing.jp

 

目次にもどる

 

5.教わる立場から教える立場へ

 私の周りでブログで稼いだり、プログラミングをやりたいっていう人は少ないです。しかし、最近同じ会社で勤めていて、カナダにWorking Holidayの為退社した後輩が日本に帰ってきて、独学と私からブログの基礎を教わりました。

 

時たま、私の方からメッセージを一方的に送り、連絡を取っています。笑

 

ブログで稼ぐのは簡単と本やネットで紹介されていますが、記事を書いたり少しでも HTMLやCSSの知識を得て編集したりして学ぶことが多くあります。たいていの人はやる事が多くしかも地味なので、長く続きません。一円さえ収入を得れることは無く、挫折してやめてしまう。私も3人は教えてきましたが、結局は続けられなくて、記事を更新せずやめてしまいます。

 

でも好きな時に、好きなことをかけるのがブログです。

 

ダイニングテーブルで記事を書いたり、ロフトで書いたりしています。もちろんコーディングも。wifi環境さえあれば、収入を稼げれる恵まれている時代です。

 

学生でいられる期間は限られますが、学ぶことは一生続けらます。何もしないで一日を終えるより、毎日何かを学び成長した方が何倍も楽しいです。収入っていうのは、後から頑張った自分を追いかけてくる。そういうものです。

 

 

人生伸び代しかない!!!

 

いつも貴重な時間読んで頂き、どうもありがとうございます!

今年もどうぞ宜しくお願い致します!

 

4児パパ

目次にもどる