PrismaでThe provided value for the column is too longというエラーが出た
ORMにPrismaを使っていたら
The provided value for the column is too long
というエラーに遭遇した。
iosのサブスク課金のレシート検証に成功した際recieptを保存するようにしたのだが、このデータの保存のタイミングで起こった。
prisma.schemaは以下の感じ
model Foo { receipt String }
なぜ起こったのか
シンプルにデータが大きすぎた。
解決策
model Foo { receipt String @db.LongText // 追加 }
こうした
MySQLとPrismaの復習
MySQLには(というか多くのRDBMSには)保持するデータに型が存在する。VARCHARやINTなど。
指定した型以外のデータを保存しようとするとPrismaがエラーを吐く。
PrismaでMySQLを使う場合、単純に String だけだと VARCHAR(191) が指定される。
これでは191文字までに限定される。
MySQLにはLongTextという4294967295バイトまで格納できる型があるので今回はそれをPrismaで指定した。
Undefined symbol: (extension in UIKit):__C.UIAction.init(title: Swift.String, image: __C.UIImage?, ~ 的なエラーが出た
ReactNativeのリリースビルドでタイトルのようなエラーが出て対処したのでメモ。デバッグビルドでは出なかった。
これはどうやらReactNative0.63.3で発生しているエラーっぽくて、自分もモロ0.63.3を使っていた。
使用しているわけではないが、このgithubに書かれている対処法を参考にした。
PROJECT -> Build settings -> Library Search Pathsの
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"
の中のswift-5.0を swift-5.3 に変更する。
ただ、たぶんRNのバージョンあげればこれしなくても解決すると思う。
バージョンアップは大事。
module map file '/Build/Products/Release-iphoneos/RNImageColors/RNImageColors.modulemap' not found 的なエラーが出た
ReactNativeのリリースビルド時にタイトルのようなエラーが出た。デバッグの時は出てない。
解決にはこのissueを参考にした。
# エラーが出た時のPodfile platform :ios, '10.0' ...
# 修正後のPodfile platform :ios, '9.0' ...
変更後 pod install
これで通ったが、
この画像の通り、自分のDeployment Targetは10なので platform :ios, '10.0' で動かないとおかしい、、
なのでもう一度キャッシュを削除して pod install してビルドしたら通った。
最初エラーが出た時もキャッシュは削除したからキャッシュが問題だったわけではなさそう。
ちょっと前にflipperを有効にするために少しPodfileやら設定をいじったりしたのでそこに原因があるかもしれない。要調査。
Multiple commands produce react-native-vector-icons/Fonts/AntDesign.ttf' ~ script phase “[CP] Copy Pods Resources”的なエラーが出た。
ReactNativeでタイトルのようなエラーが出たのを対処したのでメモ。
TARGETS -> Build Phases -> Copy Bundle Resorcesからエラー出てるファイルを全て - で削除する。
ReactNativeでFlipperを使おうとしたら 'event2/event-config.h' file not foundが出た
今までPodfileでflipperを無効にしていたのだが、使ってみたかったので有効にしたら'event2/event-config.h' file not foundというエラーが出たので対処法をメモ。
ReactNativeのバージョンは(古めだけど)0.63。
# エラーが出た時のPodfileのflipperの部分
use_flipper!()
このissueでは「Flipper-Follyのバージョンがアップデートされたから修正してね」とあるのでそれが理由なのかもしれない。
use_flipper!({ 'Flipper-Folly' => '2.3.0' })
や
use_flipper!({ 'Flipper' => '0.95.1', 'Flipper-Folly' => '2.6.7', 'Flipper-RSocket' => '1.4.3' })
にする案もあるが、ここで書かれているように
use_flipper!({ 'Flipper' => '0.122.0' })
に変えて、pod install --repo-update をしたら解決した。
react-native-webviewでGoogleMapを表示する
ReactNativeでwebのGoogleMapを使う必要があったのでそのメモ。
セットアップ
yarn add react-native-webview cd ios pod install
// android/gradle.propertiesに以下2行追加 android.useAndroidX=true android.enableJetifier=true
使用
<WebView source={{ html: `<iframe src="<url>" width="100%" height="100%"></iframe>`, }} />
iframeを使う必要があったので
source={{uri: "
ではなく、htmlを返すようにする。