Knex: 生成されたUUIDとMD5

作成日 2016年06月12日  ·  5コメント  ·  ソース: knex/knex

postgresqlに保存するために新しいuuidまたはmd5ランダムを生成する方法。例:

screen shot 2016-06-12 at 5 10 36 pm

しかし、 'knex.raw(' uuid_generate_v4() ')'は機能しません。ランダムハッシュを生成し、新しいレコードを作成するときに自動的に保存するにはどうすればよいでしょうか。

また、静的で各リクエストに対して変更されていない移行のため、uuid-v4はランダムに生成できないようです。

screen shot 2016-06-12 at 5 23 16 pm

申し訳ありませんが、私は自分自身のためにノードを勉強しています、そして私の唯一の助けはグーグルとgithubです、私はあなたの助けに感謝します。

最も参考になるコメント

拡張機能が利用可能であることを確認する必要があります。

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()'))
  // ...
})

全てのコメント5件

理由は何ですか

しかし、 'knex.raw(' uuid_generate_v4() ')'

動作しませんか? プレーンSQLwirhout knexで使用しようとすると、postgrsqlで機能しますか?

また、DEBUG = knex:* evironment変数を設定してコードを実行し、クエリで何が起こっているかについての詳細を取得してみてください。

@anzileiro 、移行でuuis-v4パッケージを使用しないでください。ただし、モデルでは、たとえば新しいモデルを保存する前に、そのプロパティhashuuid()の値に設定してください。次にそれを保存します

拡張機能が利用可能であることを確認する必要があります。

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 、ケースは閉じました☺️

みんなありがとう!

👍

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

mattgrande picture mattgrande  ·  3コメント

npow picture npow  ·  3コメント

legomind picture legomind  ·  3コメント

lanceschi picture lanceschi  ·  3コメント

aj0strow picture aj0strow  ·  3コメント