ホームページ  >  記事  >  バックエンド開発  >  Golang では「SQL 生成」ができません

Golang では「SQL 生成」ができません

王林
王林転載
2024-02-09 11:09:181096ブラウズ

Golang 无法“sqlc 生成”

php Editor Banana は、Golang に関する重要な問題、つまり SQL を使用してコードを生成できない問題を紹介します。 Golang は、効率的で信頼性の高いバックエンド アプリケーションの開発によく使用される強力なプログラミング言語です。ただし、一部の開発者は SQL の使用で問題が発生し、必要なコードを生成できません。この問題は開発者に混乱を引き起こすため、この記事では考えられる原因を調査し、この混乱を解決するための解決策を提供します。見てみましょう!

質問内容

WindowsとUbuntu WSLを使用していますが、sqlcを生成しようとするとこのエラーが発生します。

リーリー リーリー

go env コマンドを試してみると、私の環境では実行されていますが、依然として sqlc を生成できません

sqlc generate
# package database
sql/schema/001_users.sql:1:1: the PostgreSQL engine requires cgo. Please set CGO_ENABLED=1.

回避策

WSL2 Ubuntu 22.04 (Win 11 上で実行) の新規インストールでこれを複製することができました。新しいイメージを使用して、Go (1.21.4) と sqlc (v1.23.0) をインストールし、sqlcgenerate を実行しました (質問ライブラリに記載されているチュートリアルのサンプル ストアを使用)エラーを受け取りました:

リーリー

興味深いことに、Ubuntu 20.04 (WSL2 でも) ではすべてが正常に動作します。

Ubuntu 20.04 と 22.04 の CGO 対応バイナリの互換性に関する 問題 があるため (詳しくは調べていません!)、sqlc# を再インストールしてみる価値はありそうです。 ## を有効にして CGO: リーリー

これを実行すると、

sqlc が機能しました (6-createfeed の例の go ファイルが正常に生成され、問題はありませんでした)。

注: これは機能するので、同様の

sqlc の質問に対してコメント を追加すると、同じ基本的な解決策を提案する a>このコメント を見つけました (これを最後に見ました)夜これは当時発見されていませんでした)。

以上がGolang では「SQL 生成」ができませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。