なんか書くぞ

web系だと思う

alembicでテーブルができるまで

はい、pythonの話です

まあこれ読めばできるんですけどね Tutorial — Alembic 0.9.3 documentation

プロジェクトのルートで作業するのがやりやすかった

$ alembic init alembic

alembic氏のディレクトリが生える

コマンド打ったディレクトリに alembic.ini ファイルができる

そういえば今回は単一のDBのお話なので、複数のDBを管理したい時はまた別。

複数DB扱うときはこちら↓が参考になるかと思います(試してないので断定してない)

qiita.com

alembic.iniね

# ここ編集するぞ 
# あとDBはあらかじめ作っておく 
sqlalchemy.url = driver://user:pass@localhost/dbname 

$ alembic revision -m "initial create table"

これでスキーマ定義用のファイルが alembic/versions/ 以下にできる

できたやつ.py

Revision ID: {Revision ID}
Revises: 戻す時のやつ
Create Date: 2017-06-12 23:12:13.187440

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '{Revision ID}'
down_revision = '{戻す時のやつ}'
branch_labels = None
depends_on = None


def upgrade():
    op.create_table(
        "user",
        sa.Column("id", sa.Integer, primary_key=True),
        sa.Column("name", sa.String({max_length}), unique=True),
        sa.Column("email", sa.String({max_length}), unique=True),
        sa.Column("password", sa.String({max_length}), unique=True),
        sa.Column("mtime", sa.TIMESTAMP),
        sa.Column("ctime", sa.DateTime, default=sa.func.now())
    )

def downgrade():
    op.drop_table('user')

djangoっぽくuser.pyとかを作ってそこにmodelの定義書いて〜とか考えてたけどできるのかな、知らんけど、うーん。

で、これができたら $ alembic upgrade head ってやるとなんかテーブルできてる。

Error:No such property: useAnt for class: org.gradle.api.tasks.scala.ScalaCompileOptions

Error:No such property: useAnt for class: org.gradle.api.tasks.scala.ScalaCompileOptions

見つけたぞ

stackoverflow.com

build.gradleにこれ追加

 ScalaCompileOptions.metaClass.daemonServer = true
 ScalaCompileOptions.metaClass.fork = true
 ScalaCompileOptions.metaClass.useAnt = false
 ScalaCompileOptions.metaClass.useCompileDaemon = false

ほい

charles氏でアプリから任意のipにアクセスするぞ

別にブラウザとかだったらいいんですけど、リリース前のアプリの検証のためにサーバーの向き先だけ変えたいんじゃよ〜みたいな事がよく起こるのでいい加減メモる

charles氏はこれね

www.charlesproxy.com

用意するもの

  • mac
  • アプリ入ってる端末(アプリとOSのバージョンよく確認しといてね)
  • charles in mac

charlesの設定

Tool => DNS spoofing を選択して、こんな感じで設定します

f:id:koji_koji_koji:20170330221116p:plain

で、設定はこう f:id:koji_koji_koji:20170330222237p:plain

書いたPCにcharles入れ忘れて新たに入れるのめんどいので画像だけ持ってきた

URLの方は普通にコピペで、IPアドレスの方は接続したいstgサーバーのIPアドレスを指定します

次に、 Proxy => Proxy setting でポート番号を適当に指定 そしてこれをメモっときます📝

こんな感じ

f:id:koji_koji_koji:20170330222638p:plain

これでcharles氏の方は終わり

macの設定

システム環境設定 => ネットワークmacに割り当てられたIPアドレスを確認します👀 そしてそれをメモっときます📝

iOSの設定

  • 設定 => wifi => ネットワーク選択 => 最下部の HTTPプロキシ の部分を 手動 に変える
  • ここで、👆でメモっといたIPアドレスとポートをそれぞれ入力します

完了

スッとDNSいじりましたが、作業が終わったら各端末のHTTPプロキシをオフにするのとcharlesの Enable DNS Spoofing のチェックを外すことをお忘れなく

お疲れっした

laravelのmailer

laravelでメール送るメモ。

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class MarkyMail extends Mailable
{
    use Queueable, SerializesModels;

    var $mailVars;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($maiVars)
    {
        $this->mailVars = $maiVars;
    }

    /**
     * メール送信するぞ
     *
     * @return $this
     */
    public function build()
    {
        $this
            ->view($this->mailVars["mailForm"], $this->mailVars["attr"])
            ->subject($this->mailVars['subject'])
            ->to($this->mailVars['toAddress'], $this->mailVars['name'])
            ->bcc(env('MAIL_FROM_ADDRESS'), env('MAIL_FROM_NAME'))
            ->from(config('mail.from.address'), config('mail.from.name'));
    }
}

これを app/Mail/ 以下に作っといて、 \Mail::send(new MarkyMail($attributes)); で送る。