Open5

雑なメモ

smtrdevsmtrdev

テーブル名が長いとき

SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'xx_xx_foreign' is too long

create_foo_table.php
Schema::create('foo_table', function (Blueprint $table) {
     $table->foreign('some_column')
                ->references('id')
                ->on('bar_table')
    ...

テーブル名やカラム名が長い場合、デフォルトだと外部キー名が長くなりエラーになる。
foreign() の第2引数に、任意のキー名を指定すればよい。

$table->foreign('some_column', '任意の短めなキー名')
    ->references('id')
    ->on('bar_table')
    ...

SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'xxx_yyy_index' is too long

index も同様

smtrdevsmtrdev

ローカルからS3にファイルをアップロードする場合

  • AmazonS3FullAccess ポリシーをアタッチしたIAMユーザを用意する

  • .env を書き換える

AWS_ACCESS_KEY_ID=xxxxx
AWS_SECRET_ACCESS_KEY=xxxxx
AWS_DEFAULT_REGION=xxxxx
AWS_BUCKET=xxxxx
smtrdevsmtrdev

署名付きURLでCloudFrontを経由してS3からコンテンツを取得する

  • Distributionを作成する
smtrdevsmtrdev

Elastic Beasntalk環境で使う場合

  • Beanstalkで使用するRoleに AmazonS3FullAccess policy を付与する
  • S3のBucket Policy で上記のRoleからのアクセスを許可するようにする
  • CloudFront の distribution を作成