【解決】docker-compose down したら mysqlのデータベースの内容が消えたりする
起きたこと
dockerでmysqlのコンテナを立ち上げて、その中にデータを書き込んでいたりした。
その後、docker-compose down
したら書き込んでいたデータが消えた。
docker-compose.ymlでは
volumes: - ./var/lib/mysql:/usr/local/var/mysql
のようにカレントフォルダ以下の var/lib/mysql
を使うように設定していた。
解決策
原因
単に、docker-compose.ymlにMYSQL_DATABASE: "dev"
などと記載するのを忘れていただけだった。笑
違った。単に、docker上の/usr/local/var/mysql
と接続していなかっただけだ。
volumes: - ./var/lib/mysql:/usr/local/var/mysql
/usr/local/var/mysql
ではそりゃデータ入らないわ 笑
その他
./var/lib/mysql
以下にデータベース関連のファイルがないので、docker上のmysqlで使えていなかっただけだったようだ。
テーブル名.frm (テーブル定義ファイル)などが存在していれば問題なし。
【解決】dotenvとridgepoleを組み合わせて使う際に、ridgepole実行時に、dotenvが展開されずエラーが起きる【rails】
起きたこと
rails のプロジェクトを作成し、databaseのマイグレーション周りに ridgepole を使おうとして以下のようなエラーが出た。
passwordなどの環境設定はきちんと渡しているのになんでエラーなのかなぁとハマっていた。
$ bundle exec dotenv ridgepole -c config/database.yml -E development --apply -f db/Schemafile [ERROR] Access denied for user 'mozy'@'localhost' (using password: NO) /Users/mozy/hoge/vendor/bundle/ruby/2.5.0/gems/mysql2-0.5.1/lib/mysql2/client.rb:90:in `connect'
環境変数を以下のようにdotenvにまとめていた。
.env
DATABASE_HOST=127.0.0.1 DATABASE_PORT=3000 DATABASE_USERNAME=root DATABASE_PASSWORD=pass DATABASE_NAME=database_dev
解決策
ridgepoleの実行時には、dotenvが展開されていないようでエラーが起きていた模様。
以下のように、dotenv -f ".env"
というように即時展開するオプションがあったのでそれを使うことで.envの設定を渡すことができた。
一件落着。
$ bundle exec dotenv -f ".env" ridgepole -c config/database.yml -E development --apply -f db/Schemafile
参考
GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`.
【解決】Hexo でserveなどができないエラー
起きたこと
$ hexo s
などとすると、
Error: EISDIR: illegal operation on a directory, read ERROR Plugin load failed: hexo-server
などのエラーが出て動作しないことがあった。
解決方法
npm install していたpackageが認識されていないのが問題のようだ。
yarn install
をすることで解決した
Rails で新規プロジェクトを最速で作る
経緯
いつも忘れるので、自分の環境で最速でRailsプロジェクトを作るためのメモを残す
やること
ディレクトリ作成
mkdir test
cd test
direnvで環境を固定
direnv edit .
use ruby 2.5
- Gemfile作成してbundle install
vim Gemfile
source "https://rubygems.org" gem "rails", "5.2.0"
gem install bundle
bundle install --path vendor/bundle
railsプロジェクトを作成してスタート
rails new .
rails s
表示確認
http://localhost:3000/ をみにいく。
Yay! You’re on Rails!
npm で バージョンを固定する
知ったこと
—save-exact を使うとバージョン固定できる。
以下のように使う。
`npm install --save --save-exact <packag-name>`
Laravel EOF; error
起きたこと
Laravelの開発中に、
syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN)
ってなエラーがでた。
解決方法
EOF;
の後にあったスペースを削除したらエラーが消えた。