読者です 読者をやめる 読者になる 読者になる

Pythonの集合演算

はじめに

集合に関してすぐ忘れちゃうのですよ


集合とは

  • 集合とは、重複する要素をもたない、順序づけられていない要素の集まり
  • {}内にカンマ区切りで要素を配置するか、set関数にシーケンス型を渡すことで生成


Setオブジェクトを用いて以下のような数学的な演算を行える

和(union)

A にも B にも含まれる

>>> {1, 2, 3} | {2, 3, 4}  # 和
{1, 2, 3, 4}


積(intersection)

A と B で共通

>>> {1, 2, 3} & {2, 3, 4}  # 積
{2, 3}


差(difference)

A にのみ含まれる

>>> {1, 2, 3} - {2, 3, 4}  # 差
{1}


対称差(symmetric difference)

A もしくは B にのみ含まれる

>>> {1, 2, 3} ^ {2, 3, 4}  # 対象差
{1, 4}


部分集合(subset)かの判定

左辺の要素すべてが右辺の集合に含まれている場合

>>> print({1, 3} <= {1, 2, 3})
True

左辺の要素すべてが右辺の集合に含まれていない場合

>>> print({1, 4} <= {1, 2, 3})
False


おわりに

Pythonたのし~

tmuxのバージョンアップ&セッション情報の保存

f:id:tocguitar1:20161012094513p:plain

tmuxでセッション情報を保存・復元したい

ちょっと前からtmuxを使っているのですが、

CentOS7で普通にyumでインストールしたのでバージョンが1.8でした

そして最近、tmux用の踏み台サーバを移動するため、

一度シャットダウンしないといけないことになりました

そこで気づきました


今まで育てたセッション達が死んでしまう


そこでセッション情報を保存する方法がないものか調べたところ、

以下のプラグインで実現できることがわかりました

github.com

このプラグインを使うにはtpmで管理すると良い感じだということがわかり、

tpmを使ってみようとしましたが、

調べるとtmux1.9からじゃないと使えないとのこと・・・\(^o^)/


せっかくなのでtmuxを最新バージョンへアップデートしてみることにしました


ちなみに、バージョンアップ後、バージョンアップ前のセッション情報は使えず、育てたセッション達は無事死亡いたしました


現在1.8のバージョンを最新の2.3へバージョンアップ

古いtmuxの削除

# yum remove tmux


依存関係のあるモジュールのインストール

# yum install libevent-devel ncurses-devel


tmux2.3のインストール

# cd /usr/local/src
# wget https://github.com/tmux/tmux/releases/download/2.3/tmux-2.3.tar.gz
# tar -xvf tmux-2.3.tar.gz
# cd tmux-2.3
# ./configure && make
# make install


tmuxプラグイン管理tpmのインストールおよび設定とプラグインインストール

tpmのインストール

# git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm


.tmux.confの作成

set -g @tpm_plugins '              \
  tmux-plugins/tpm                 \
  tmux-plugins/tmux-resurrect      \

'

run-shell '~/.tmux/plugins/tpm/tpm'


.tmux.confの読み込み

# tmux source-file ~/.tmux.conf


プラグインのインストール

  • tmuxを起動してprefix I(shift+I)でpluginがインストールされる


tmux-resurrectでのセッション情報の保存と復元を試してみる

現在のtmuxセッションの確認

  • いづれかのセッションにアタッチし、prefix Ctrl + sでセッションを保存
# tmux ls
system1: 1 windows (created Tue Oct 11 18:11:28 2016) [294x78]
system2: 1 windows (created Tue Oct 11 18:16:18 2016) [294x78]
system8: 1 windows (created Tue Oct 11 18:19:27 2016) [294x78]
system9: 2 windows (created Tue Oct 11 18:20:40 2016) [294x78]
systemA: 1 windows (created Tue Oct 11 18:23:29 2016) [294x78]
systemC: 2 windows (created Tue Oct 11 18:29:35 2016) [294x78]


セッションの削除

# tmux kill-server
# tmux ls
no server running on /tmp/tmux-0/default


tmuxサーバーを起動し、prefix Ctrl + rでセッションを復元


セッションの確認

# tmux ls
0: 1 windows (created Wed Oct 12 10:46:41 2016) [294x78]
system1: 1 windows (created Wed Oct 12 10:46:43 2016) [294x78]
system2: 1 windows (created Wed Oct 12 10:46:43 2016) [294x78]
system8: 1 windows (created Wed Oct 12 10:46:43 2016) [294x78]
system9: 2 windows (created Wed Oct 12 10:46:44 2016) [294x78]
systemA: 1 windows (created Wed Oct 12 10:46:44 2016) [294x78]
systemC: 2 windows (created Wed Oct 12 10:46:44 2016) [294x78]

他にも色々プラグインがあるみたいなのでこれから色々いじっていきたいと思います!


参考情報

qiita.com qiita.com qiita.com qiita.com dev.classmethod.jp qiita.com

【田町・三田・芝浦】おすすめのカレー屋【5選】

カレーが好きなんです

ぼくはらーめんと双璧をなすぐらいカレーがスキなんですね

田町にはらーめん屋もカレー屋もいっぱいあってカレーの場合、サイドメニュー的な扱いで置いてる店も多いのでらーめん、カレー好きとしてはいろいろ捗っております


そんなかんじで個人的主観のみによる田町でおすすめのカレーをランキング形式でご紹介したいとおもいます!


第5位 日乃屋カレー

食べログ

トップー日乃屋

おおもりカツカレー!950円!


がっつり食べるのにはいいですね!

ただ、ちょっと甘めなのでスパイシーなカレーが好みの方には合わないかもしれないですねー


第4位 KAI

食べログ

twitter.com

大盛りタンドリーチキンスパイスカレー!1340円!!

ここも中々味のバランスが良くてスキなお店です

雰囲気も良く、夜飲みに行ってもよさそうな感じですね


メニューも色々あるのですが、まだそんなに開拓できていないのでこれからいろいろ食べてみたいとおもいますー


第3位 ボンディ

食べログ

bondy.co.jp

ビーフカレーお値段なんと1600円!


これはもう王道の欧風カレーですね

強気のお値段だけあってうまい、とにかくうまいです

もはやうみゃいってかんじ


ただねぇ、やっぱ高い、高すぎる

でもまたたべたい、あぁ、食べたいよおおお


第2位 カレーハウス林

食べログ

curryhouse884.com

チキンカレー5辛!

油を一切つかわない(まじかよ)ヘルシーカレーが売りとのことです

ヘルシーかどうかはわからないですが、コクもあり、スパイシーな味わいで結構スキです


そしてお値段もかなりリーズナブルなんですね~

かなりおすすめです!


気をつけて欲しいのは5辛はかなり辛くてカレー自体がかなりアツアツなので口の中をやられないようにしてくださいw


第1位 ホーカーズ

食べログ

www013.upp.so-net.ne.jp

赤いカレー+チキンカレー!750円!

エスニック系のカレー屋さんです

ここは味、値段のバランスが素晴らしいですね!

いつも混んでていてお昼休みにスタートダッシュかまさないと入れません


スパイシーかつ、味わい深く値段も安いのでまた行きたいと強く思わせてくれるカレー屋さんです^^


おわりに

田町は以外と?らーめんやカレー屋がいっぱいあるのでランチには困りませんね

カレー屋はまだらーめんほど訪問できていないのですが、インドカレー屋もいくつかあるのでそこらへんも時間を見つけて行ってみたいとおもいます!


あわせて読みたい

tocyuki.hatenablog.com

【田町・三田】おすすめのラーメン屋【10選】

はじめに

実はラーメンが大好きでして、

普段お昼はお弁当を奥さんに作ってもらって食べているんですが、

外でお昼を食べるチャンスがあればほぼ必ずラーメン食べてます


職場が田町なのですが、意外と田町はラーメン屋がいっぱいあり、

クオリティの高いお店が多いです


ということで唐突ではありますが、田町でおすすめのラーメン屋を

個人的なランキング形式で紹介したいと思います!


第10位 ラーメン天空

食べログ - 天空

個人的にはここのつけ麺はあまり好きではないです・・・w

ただ、いつも結構混んでいるので他のメニューを食べてみたい

ということで10位です


写真は辛つけ麺(830円)です


第9位 北の大地

食べログ - 北の大地

新宿で人気のあったラーメン屋が田町にもできました

ここの味噌ラーメンはまさに「THE サッポロ味噌ラーメン」という感じの味噌ラーメンで、

札幌味噌ラーメン独特の風味でとても美味しかったです

値段も手頃なものもあるのでおすすめです

写真は味噌ラーメン(750円)です


第8位 香屋 三田店

食べログ - 香屋

自分は無類の担々麺好きで、担々麺があれば基本担々麺を食べます

このお店は担々麺専門というような感じみたいです


食べたのは汁なし担々麺&青鬼担々麺のハーフアンドハーフセット(1000円)なのですが、

これが間違いでしたw


山椒が大好きなので店員の静止(?)を振り切り、

青鬼を選んだのですが、山椒レベルが桁違いでした


舌がかなり痺れてしまい結構食べきるのがツラいレベルでしたが、なんとか完食

汁なしの方はとても美味しかったです!


後日普通の担々麺を食べたらとても美味しかったです!

青鬼は普段から山椒ぶっかけまくりの方以外は遠慮した方が良いですよ\(^o^)/


第7位 武源家

食べログ - 武源家

現在田町の家系はこの店がトップでしょう

慶応大近くに店を構えているので、ご飯おかわり自由は相当反響があるようです

味も良く、太龍軒なき今家系が食べたい時はこのお店に行っています

写真は激辛ラーメン並(750円)です


第6位 三田製麺所 三田本店

食べログ - 三田製麺所

三田製麺所の本店は三田ということで

こちらも中々良いクオリティのつけ麺です


魚粉ベースのつけ汁に麺は大盛り(400g)まで無料なところも嬉しいです

もちろんあつもり/ひやもりも可能で割りスープも完備です


写真のメニューは辛つけ麺大盛り(780円)です

味、量、コスパいずれも素晴らしいっす!


第5位 麻布ラーメン 慶応三田店

食べログ - 麻布ラーメン

ここのとんこつ担々麺(950円)が好きで良く来ます

950円と少し高めですが、その分ボリュームもあり、満足できます


とんこつ担々麺ということで

普通の担々麺とは異なる味で濃厚で好きなラーメンです!


第4位 らーめん二郎 三田本店

食べログ - らーめん二郎

ジロリアンの聖地、三田本店です

現在はオヤジさんが引退し、主に厨房に立っているのは息子さんみたいなのですが、

そのせいなのか?

今まであった味のバラ付きが少なくなり味のクオリティが安定してきましたw


元気な時にしか行こうと思いませんがw


写真はらーめん小にんにくアブラ(600円)です。安い!


第3位 舎鈴 田町店

食べログ - 舎鈴

六厘舎系列でお馴染みの舎鈴です

ここは何と言っても食べるべきは

坦々つけ麺一択です


濃厚なスープがめちゃくちゃうまいです

辛いのが好きな人は備え付けの黒七味をガンガンいきましょう

ここの黒七味は香りもとてもよいです


第2位 麺屋やっとこ

食べログ - 麺屋やっとこ

田町でラーメン食べるならまずここに来てほしいですね

味噌ベースのラーメンでアクセントにトマトがちょろっと乗ってるんですが、

それがなんとも言えない良いアクセントになっていて、

ぼくトマト嫌いなんですけど超うまいです


チャーシューのレベルも高く、スープが濃厚で

美味しいのでいつも飲み干してしまいます


ちなみにこれは特製赤辛らーめん大盛り(1080円)です


第1位 むらさき山

食べログ - むらさき山

化学調味料を一切使用していないというこだわりのお店です

こだわり通り、非常に上品で優しい味わいのラーメンです

意外とあっさりしてますが、深い味わいが楽しめます

最近はここが一番好きなお店です

つけめんもあり、そちらもおすすめです!


写真は紫(ゆかり)そば(950円)です


おわりに

田町はビジネス街なので大通り周りにはお店が少ないのですが、

少し中に入るとラーメンに限らず、色々な面白いお店があります


個人的にカレーも好きで、田町のカレー屋も色々行っているので

今度カレーバージョンの記事も書きたいな!


カレーバージョン書きました


あわせて読みたい

tocyuki.hatenablog.com

WindowsのSSHクライアントをTeratermからPuttyに変えた

f:id:tocguitar1:20170405153233j:plain

はじめに

ずっと使い慣れ親しんできたTeratermに別れを告げ、

Puttyへ乗り換えたという甘く切ない物語


なぜ乗り換えたのか

Teratermを使っていた理由

普段は仕事でWindows機を使っています

エンジニアになって最初に触ったSSHクライアントがTeratermでした

Teratermを使っている理由はまさに

最初に使ったからというのが大きな理由となります


メリットしては現在数百台のサーバーを運用・管理しているのですが、

当初は100台程度だったので、TeratermのMenu機能で事が足りていたんですね

Tera Term Menu Tutorial

あとはTeratermマクロという機能があるのですが、

NW機器系のコンフィグやログを採取する際に

Teratermレンダリングエンジンがしょぼいため、

あまり多くの情報を標準出力させるとログの表示が欠損したり

表示がおかしくなったりするのでマクロを作成して回避する

というような少しめんどくさいこともしたりすることもあります

mag.osdn.jp

そんなこんなで特筆すべき使っていた理由はなく、

まさになんとなくということです


Teratermのデメリット

最近は基本的にVim+tmux+zshという構成で

色々と作業することが多いため、以下の点が大きな問題となっていました

  • tmuxで画面分割した状態でログなどをドバーッと流すと表示がおかしくなることがある
  • 全角半角でフォントを別々に設定できない


Puttyへ変更するメリット

Puttyは上記であげたデメリットをすべて解消してくれます

tmuxで各種サーバーへ接続しているため、

レンダリングエンジンの強さは非常に重要な要件となります

また、フォントを適切に設定することで

見た目もいい感じになり、やる気が出てきますw


乗り換えの仕方

ダウンロード

以下のリンクからレンダリングエンジンが

Direct2D/DirectWriteのモジュールをダウンロードします

使い方も同じページに書いてあるので参考にしてください

iceiv+putty

PuTTY 0.60 ごった煮版 2007年8月6日版 に 諸々の機能 を追加したものをベースに、 テキストレンダリングエンジンを GDI から Direct2D/DirectWrite へ変更した、 アンチエイリアスとか半透明とかの単語に反応する人向けベータテスト準備中バージョン PuTTY です。


フォントの設定

メインのフォントはTop10Programmingで

1位になったInconsolataを使っています

hivelogic.com


日本語フォントにはMeiryoUI、

代替フォントにもMeiryoUIを使用しています

f:id:tocguitar1:20170130095906p:plain


全角、半角のフォントを別々に分けられることで

日本語も良い感じに描写してくれます^^

f:id:tocguitar1:20170130100138p:plain


終わりに

いやー、いままで気になっていた部分がすべて解消されとてもいい感じです!

そしてPuttyは「プティ」ではなく「パティ」と読むらしいのですがどうでもいいですねはい!

それでは良きPuttyライフをお過ごし下さい\(^o^)/

Ruby2.x.xをインストールしようとしたらBUILD FAILD

f:id:tocguitar1:20170405151501p:plain

はじめに

Rubyのバージョンを2.0から2.3にあげようとしたら

エラーが出てできなかった悲しい話です


環境


出てきたエラー

toshiyuki@MacBook-Air [045843秒] [~/dotfiles] [master]
-> % rbenv install 2.3.0
Downloading ruby-2.3.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
Installing ruby-2.3.0...

BUILD FAILED (OS X 10.11.5 using ruby-build 20160602)

Inspect or clean up the working tree at /var/folders/0p/7j82ymzd0wd9nlxxz08927ww0000gn/T/ruby-build.20170103045921.71504
Results logged to /var/folders/0p/7j82ymzd0wd9nlxxz08927ww0000gn/T/ruby-build.20170103045921.71504.log

Last 10 log lines:
  Referenced from: /private/var/folders/0p/7j82ymzd0wd9nlxxz08927ww0000gn/T/ruby-build.20170103045921.71504/ruby-2.3.0/./miniruby (which was built for Mac OS X 10.12)
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _clock_gettime
  Referenced from: /private/var/folders/0p/7j82ymzd0wd9nlxxz08927ww0000gn/T/ruby-build.20170103045921.71504/ruby-2.3.0/./miniruby (which was built for Mac OS X 10.12)
  Expected in: /usr/lib/libSystem.B.dylib

make: *** [encdb.h] Trace/BPT trap: 5
make: *** Waiting for unfinished jobs....
make: *** [.rbconfig.time] Trace/BPT trap: 5


色々調べているとコマンドラインツールを必要なようなので確認

toshiyuki@MacBook-Air [05時26分37秒] [~]
-> % brew --config
HOMEBREW_VERSION: 0.9.9
ORIGIN: https://github.com/Homebrew/brew.git
HEAD: e3b6c96b5dbb3529832f19347781bc2cedd6ab5a
Last commit: 6 months ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 4a355f7e67a625b03e87947f510196615fa21d99
Core tap last commit: 38 minutes ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: quad-core 64-bit broadwell
Clang: 8.0 build 800
Git: 2.9.0 => /usr/local/bin/git
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
Java: 1.6.0_65-b14-468
System Ruby: 2.0.0-p648
OS X: 10.11.5-x86_64
Xcode: 8.2
CLT: N/A
X11: 2.7.9 => /opt/X11


コマンドラインツールのインストールを実施

toshiyuki@MacBook-Air [05時27分56秒] [~]
-> % xcode-select --install
xcode-select: note: install requested for command line developer tools


再度、brew --configで確認

toshiyuki@MacBook-Air [05時29分34秒] [~]
-> % brew --config
HOMEBREW_VERSION: 0.9.9
ORIGIN: https://github.com/Homebrew/brew.git
HEAD: e3b6c96b5dbb3529832f19347781bc2cedd6ab5a
Last commit: 6 months ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 4a355f7e67a625b03e87947f510196615fa21d99
Core tap last commit: 43 minutes ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: quad-core 64-bit broadwell
Clang: 8.0 build 800
Git: 2.9.0 => /usr/local/bin/git
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
Java: 1.6.0_65-b14-468
System Ruby: 2.0.0-p648
OS X: 10.11.5-x86_64
Xcode: 8.2
CLT: 8.2.0.0.1.1480973914
X11: 2.7.9 => /opt/X11


再度Rubyのインストールを実施

toshiyuki@MacBook-Air [05時34分07秒] [~]
-> % rbenv install 2.3.1
Downloading ruby-2.3.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2
Installing ruby-2.3.1...
Installed ruby-2.3.1 to /usr/local/opt/rbenv/versions/2.3.1


無事、インストールできました!


参考

www.task-notes.com

blog.tstylestudio.com

db:migrateがうまくいかない場合の対処方法

f:id:tocguitar1:20170405145532p:plain

はじめに

少し考えればごくごく当たり前のことですが

ぼくはハマってしまったのでその備忘録です


ケース

  • User機能をScaffoldで作成し、rake db:migrateを実行
  • git commit後、git resetで以前のコミットに戻る
  • 再度User機能をScaffoldで作成、rake db:migrateを実行するもエラーでうまくいかない


環境

  • Cloud9環境
  • 開発環境でのSQLiteでの事象


エラー内容

tocyuki:~/workspace (develop) $ rake db:migrate
== 20161213035900 CreateUsers: migrating ======================================
-- create_table(:users)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "email" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `initialize'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `new'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `prepare'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:137:in `execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/sqlite3_adapter.rb:329:in `block in execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/sqlite3_adapter.rb:329:in `execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/schema_statements.rb:208:in `create_table'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:665:in `block in method_missing'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:634:in `block in say_with_time'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:634:in `say_with_time'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:654:in `method_missing'
/home/ubuntu/workspace/db/migrate/20161213035900_create_users.rb:3:in `change'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:608:in `exec_migration'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:592:in `block (2 levels) in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:591:in `block in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in `with_connection'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:590:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:768:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:998:in `block in execute_migration_in_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:1044:in `block in ddl_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/transactions.rb:220:in `transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:1044:in `ddl_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:997:in `execute_migration_in_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:959:in `block in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:955:in `each'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:955:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:823:in `up'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:801:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/tasks/database_tasks.rb:137:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-2.3.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
ActiveRecord::StatementInvalid: SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "email" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `initialize'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `new'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `prepare'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:137:in `execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/sqlite3_adapter.rb:329:in `block in execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/sqlite3_adapter.rb:329:in `execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/schema_statements.rb:208:in `create_table'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:665:in `block in method_missing'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:634:in `block in say_with_time'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:634:in `say_with_time'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:654:in `method_missing'
/home/ubuntu/workspace/db/migrate/20161213035900_create_users.rb:3:in `change'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:608:in `exec_migration'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:592:in `block (2 levels) in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:591:in `block in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in `with_connection'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:590:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:768:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:998:in `block in execute_migration_in_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:1044:in `block in ddl_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/transactions.rb:220:in `transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:1044:in `ddl_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:997:in `execute_migration_in_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:959:in `block in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:955:in `each'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:955:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:823:in `up'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:801:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/tasks/database_tasks.rb:137:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-2.3.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
SQLite3::SQLException: table "users" already exists
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `initialize'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `new'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:91:in `prepare'
/usr/local/rvm/gems/ruby-2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/database.rb:137:in `execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/sqlite3_adapter.rb:329:in `block in execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/sqlite3_adapter.rb:329:in `execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/schema_statements.rb:208:in `create_table'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:665:in `block in method_missing'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:634:in `block in say_with_time'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:634:in `say_with_time'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:654:in `method_missing'
/home/ubuntu/workspace/db/migrate/20161213035900_create_users.rb:3:in `change'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:608:in `exec_migration'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:592:in `block (2 levels) in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:591:in `block in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in `with_connection'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:590:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:768:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:998:in `block in execute_migration_in_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:1044:in `block in ddl_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/transactions.rb:220:in `transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:1044:in `ddl_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:997:in `execute_migration_in_transaction'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:959:in `block in migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:955:in `each'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:955:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:823:in `up'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/migration.rb:801:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/tasks/database_tasks.rb:137:in `migrate'
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-2.3.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)


対処方法

長々とエラーを記載しましたがようするに

この一行に全て書いてあるというわけですね!

「usersテーブルもうあるよ!!」

SQLite3::SQLException: table "users" already exists


対象のテーブルを削除

rails dbconsoleSQLiteをいじっていきます

tocyuki:~/workspace (develop) $ rails dbconsole
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>


usersテーブルが存在するか確認

sqlite> .tables
notes              schema_migrations  users  


usersテーブルを削除

sqlite> drop table users


削除されたか確認

sqlite> .tables
notes              schema_migrations


再度migrationを実施

tocyuki:~/workspace (develop) $ rake db:migrate
== 20161213035900 CreateUsers: migrating ======================================
-- create_table(:users)
   -> 0.0013s
== 20161213035900 CreateUsers: migrated (0.0014s) =============================


エラー出ずにうまくいきました!


おわりに

gitでまえのコミットに戻って

DBをそのままにしていたのが原因ということでした\(^o^)/