postgresqlに保存するために新しいuuidまたはmd5ランダムを生成する方法。例:
しかし、 'knex.raw(' uuid_generate_v4() ')'は機能しません。ランダムハッシュを生成し、新しいレコードを作成するときに自動的に保存するにはどうすればよいでしょうか。
また、静的で各リクエストに対して変更されていない移行のため、uuid-v4はランダムに生成できないようです。
申し訳ありませんが、私は自分自身のためにノードを勉強しています、そして私の唯一の助けはグーグルとgithubです、私はあなたの助けに感謝します。
理由は何ですか
しかし、 'knex.raw(' uuid_generate_v4() ')'
動作しませんか? プレーンSQLwirhout knexで使用しようとすると、postgrsqlで機能しますか?
また、DEBUG = knex:* evironment変数を設定してコードを実行し、クエリで何が起こっているかについての詳細を取得してみてください。
@anzileiro 、移行でuuis-v4
パッケージを使用しないでください。ただし、モデルでは、たとえば新しいモデルを保存する前に、そのプロパティhash
をuuid()
の値に設定してください。次にそれを保存します
拡張機能が利用可能であることを確認する必要があります。
knex.raw('create extension if not exists "uuid-ossp"')
その後、あなたはすることができます
table.string('hash').defaultTo(knex.raw('uuid_generate_v4()'))
down
の移行を忘れないでください:
knex.raw('drop extension if exists "uuid-ossp"')
編集:pgを使用する場合、文字列の代わりにuuidタイプを使用できます。例:
await knex.schema.createTable('Users', t => {
t.uuid('id').defaultTo(knex.raw('uuid_generate_v4()'))
// ...
})
ありがとう@ fl0w 、ケースは閉じました☺️
みんなありがとう!
👍
最も参考になるコメント
拡張機能が利用可能であることを確認する必要があります。
その後、あなたはすることができます
down
の移行を忘れないでください:編集:pgを使用する場合、文字列の代わりにuuidタイプを使用できます。例: