fooユーザーとしてlsを実行する
sudo -u foo ls
sudo -u foo ls
nuxt3をインストールした後
yarn add -D vuetify-nuxt-module
する。
yarn add @mdi/font
をしてもいいとのこと。
あとは、nuxt.config.ts を編集するだけでOK。
export default defineNuxtConfig({ devtools: { enabled: true }, modules: [ 'vuetify-nuxt-module' ], }
Nuxt3 で Vuetify3 + SASS/SCSS を使う (vuetify-nuxt-module 使用) #Nuxt - Qiita
空のnamed volumesで除外したいサブディレクトリを上書きすればよい
version: "3.9" services: frontend: build: ./xserver ports: - 3000:3000 volumes: - ./xserver:/app - dummy-volumes:/app/node_modules # node_modules はホストPCと共用しない(すると動かない) environment: - HOST=0.0.0.0 - port=3000 tty: true working_dir: /app entrypoint: yarn dev -o volumes: dummy-volumes: # ダミー用volume
上記の例でいいますと、
ホストPC側には、./xserver/node_modules が存在し、
volumes で、./xserverをコンテナの/appに紐づけちゃうと、/app/node_modulesがホストPCの./xserver/node_modulesと同じ内容になってしまう状態です。
それを避けたいため、
dummy-volumesという空のnamed volumesを作成し、それをコンテナ内の/app/node_modules に設定することで、ホストの./xserver/node_modulesだけはコンテナに紐づかないので、コンテナの/app/node_modulesがコンテナで作成した内容になります。(ホストの内容で上書きされずに済みます)
php(PDO) + postgresql の生SQLを実行時に
Invalid parameter number: mixed named and positional parameters
が発生。
原因、postgresqlのjsonbの演算子などではよく「?」を使うことがあるが、これと、phpのPDOのプリペアドステートメントの「?」(疑問符パラメータ)と勘違いされてエラー
例) foo_table.bar ? 'fuga_colum_name'
といったpostgrsqlのjsonbの演算子(fuga_colum_nameというキーがbarカラムの中に存在するかを調べる)
php(PDO)に渡すSQL文に「?」を使いたい場合は、「??」というふうにすれば使える。
PHP 7.4.0 以降では、クエスチョンマークを2回続けることで、 クエスチョンマークそのものをエスケープすることができます。 これは、?? という文字列が、 クエリをデータベースに送信する時に ? に変換されるということです。
[ { "foo": "foo内容1", "bar": "bar内容1", "kore": "kore1" }, { "foo": "foo内容2", "bar": "bar内容2" }, { "foo": "foo内容3", "bar": "bar内容3" } ]
上記のように、配列の中にさらにjsonが入っているタイプのデータがjsonbカラムに入っていた場合。
"kore":"kore1"というデータが存在する行だけ取得したい("kore":"kore1"を含まないデータは除外したい)
SELECT * FROM target_table t WHERE t.target_column @> '[{"kore":"kore1"}]'
でOKのようです。ポイントは[]
配列の中に、存在を確認したいキーと値の組み合わせを入れるという…。これでいちおう配列jsonの格納されたjsonbタイプのデータで、含まれているものだけが抽出されました。
(直観的ではないですが…)
以下のようなカラムを持つ行は取得されません。 - "kore"キーを持つjsonデータがない
[ { "foo": "foo内容1", "bar": "bar内容1", }, { "foo": "foo内容2", "bar": "bar内容2" }, { "foo": "foo内容3", "bar": "bar内容3" } ]
[ { "foo": "foo内容1", "bar": "bar内容1", }, { "foo": "foo内容2", "bar": "bar内容2", "kore": "kore999" }, { "foo": "foo内容3", "bar": "bar内容3" } ]