Yesod,Persistent和MySQL没有实例错误

詹姆斯·伯顿

我不确定在这篇文章中包含什么内容,因为我真的不理解错误消息,所以我只包含了错误,Model.hs文件和模型。我正在使用Yesod MySQL脚手架网站。我正在使用的操作系统是Ubuntu。如果您需要查看其他任何代码,例如数据定义,则只需询问即可。

错误信息:

[ 6 of 20] Compiling Model            ( src/Model.hs, .stack-work/dist/x86_64-linux/Cabal-1.24.2.0/build/Model.o )

/home/james/ConVoke/convoke-website/src/Model.hs:24:7: error:
    • No instance for (persistent-2.7.0:Database.Persist.Sql.Class.PersistFieldSql
                         Language)
        arising from a use of ‘persistent-2.7.0:Database.Persist.Sql.Class.sqlType’
    • In the fourth argument of ‘FieldDef’, namely
        ‘persistent-2.7.0:Database.Persist.Sql.Class.sqlType
           (Data.Proxy.Proxy :: Data.Proxy.Proxy Language)’
      In the expression:
        FieldDef
          (HaskellName (packPTH "language"))
          (DBName (packPTH "language"))
          (FTTypeCon Nothing (packPTH "Language"))
          (persistent-2.7.0:Database.Persist.Sql.Class.sqlType
             (Data.Proxy.Proxy :: Data.Proxy.Proxy Language))
          []
          True
          NoReference
      In the ‘entityFields’ field of a record

--  While building package website-0.0.0 using:
      /home/james/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-work/dist/x86_64-linux/Cabal-1.24.2.0 build lib:website --ghc-options " -ddump-hi -ddump-to-file"

型号:

{-# LANGUAGE EmptyDataDecls             #-}
{-# LANGUAGE FlexibleInstances          #-}
{-# LANGUAGE GADTs                      #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses      #-}
{-# LANGUAGE NoImplicitPrelude          #-}
{-# LANGUAGE OverloadedStrings          #-}
{-# LANGUAGE TemplateHaskell            #-}
{-# LANGUAGE TypeFamilies               #-}
module Model where

import ClassyPrelude.Yesod
import Database.Persist.Quasi

import Import.Game
import Import.Language
import Import.Profile

-- You can define all of your database entities in the entities file.
-- You can find more information on persistent and how to declare entities
-- at:
-- http://www.yesodweb.com/book/persistent/
share [mkPersist sqlSettings, mkMigrate "migrateAll"]
    $(persistFileWith lowerCaseSettings "config/models")

楷模:

Player
     name Text
     username Text
     dob Day
     language Language
     tournaments [TournamentResult]
     deriving (Show)

 PlatformAccount
     player PlayerId
     platform Platform
     account Text
     deriving (Show)

 SocialAccount
     player PlayerId
     site SocialSite
     account Text
     deriving (Show)

 PastTeam
     player PlayerId
     team TeamId
     yearJoined Int
     yearLeft Int
     deriving (Show)

 TournamentResult
     player PlayerId
     team TeamId
     name Text
     placing Text
     year Int
     deriving (Show)

 Roster
     name Text
     game Game
     team TeamId
     players [PlayerId]
     creationDay Day
     deriving (Show)

 PlayerRole
     roster RosterId
     player PlayerId
     role Role
     deriving (Show)

 CompetitiveGame
     game Game
     platform Platform
     role Role
     availability Availability
     playingSince Int
     deriving (Show)

 Team
     name Text
     creationDay Day
     deriving (Show)

提前致谢 :)

编辑:根据要求定义Language数据类型的Language.hs文件:

module Import.Language where

allLanguages :: [Language]
allLanguages = [Afrikanns ..]

data Language = Afrikanns |
                Albanian |
                Arabic |
                Armenian |
                Basque |
                Bengali |
                Bulgarian |
                Catalan |
                Cambodian |
                Chinese_Mandarin |
                Croation |
                Czech |
                Danish |
                Dutch |
                English |
                Estonian |
                Fiji |
                Finnish |
                French |
                Georgian |
                German |
                Greek |
                Gujarati |
                Hebrew |
                Hindi |
                Hungarian |
                Icelandic |
                Indonesian |
                Irish |
                Italian |
                Japanese |
                Javanese |
                Korean |
                Latin |
                Latvian |
                Lithuanian |
                Macedonian |
                Malay |
                Malayalam |
                Maltese |
                Maori |
                Marathi |
                Mongolian |
                Nepali |
                Norwegian |
                Persian |
                Polish |
                Portuguese |
                Punjabi |
                Quechua |
                Romanian |
                Russian |
                Samoan |
                Serbian |
                Slovak |
                Slovenian |
                Spanish |
                Swahili |
                Swedish  |
                Tamil |
                Tatar |
                Telugu |
                Thai |
                Tibetan |
                Tonga |
                Turkish |
                Ukranian |
                Urdu |
                Uzbek |
                Vietnamese |
                Welsh |
                Xhosa
                deriving (Enum, Show, Eq)
自己

该错误表明它无法找到与总和类型相关的Persistent实例。您必须做两件事来修复它:

=>确保为您的总和类型派生ShowRead实例。例:

data Language = JS | Haskell deriving (Eq, Show, Read, Ord)

=>使用模板haskell派生与其相关的持久相关实例:

derivePersistField "Language"

您必须对要用于模型的所有总和类型执行此操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

StructureMap错误-没有注册默认实例

Haskell 错误没有来自文字的实例

C ++错误没有构造函数的实例

数据库没有更新,但是没有错误出现。MySQL和PHP

如何创建具有yesod-persistent的单个列的列表?

避免datetime64 [ns]和MySQL的'MySQLConverter'对象没有属性'_timestamp_to_mysql'错误

Docker MySQL错误没有'mysql'表

错误:没有由文字引起的 (Num Price) 实例

序言:错误:> / 2:参数没有充分实例化

Prolog错误:is / 2:参数没有充分实例化

错误:java.lang.IllegalStateException:没有注册“ XmlToolsFactory”的实例

错误:AttributeError:电影实例没有属性“ show_trailer”

cin.get()导致“没有重载函数实例”错误

C ++排序错误“没有重载函数的实例。”

错误:NoSuchMethodError:“_AssertionError”类没有实例获取器“代码”

使用MySQL和Yesod的持久语法出错

Python/MySQL,没有错误但没有插入数据

MySQL删除没有错误的地方

没有实例共享变量的复合和层次结构

没有MonadState的实例

序幕中的I / O:错误:没有充分实例化参数,没有更多信息

有关私有MySQL实例和WordPress的问题

WSO2群集APIM和DAS与mysql,没有显示带有此错误的统计信息

在MySQL错误方法没有错误retuns

Mysql 错误 #1064 没有提供错误描述

mySQL查询显示语法错误,但没有任何错误

mySQL语法错误,但是没有错误?

没有构造函数“Hourly::Hourly”的实例在同一行匹配参数列表和错误代码 C2664

具有永久磁盘的Apache和MySQL到多个实例