我遇到了评论者提出的同样问题:Django South - 表已经存在
没有后续行动,所以我想我会发一个新问题.我有一个Django应用程序,我在南方管理它的迁移.我在模型中添加了一个字段然后运行
./manage schemamigration my_app --auto
Run Code Online (Sandbox Code Playgroud)
按预期运行.运行
./manage migrate my_app
Run Code Online (Sandbox Code Playgroud)
但是,导致错误,表明与我更改的模型关联的表已经存在.这导致我上面的链接问题,所以运行
./manage migrate my_app --fake
Run Code Online (Sandbox Code Playgroud)
解决了表错误,但现在我收到一个Django错误,表明与新字段关联的列不存在.
./manage sqlall my_app
Run Code Online (Sandbox Code Playgroud)
显示架构符合预期.
任何关于如何补救这一点的想法都表示赞赏!
我正在编写一个小通知服务器来将数据推送到客户端。基本架构看起来像这样(精简伪代码):
acceptConnections sock = forever $ do
connection <- accept sock
forkIO (handleConnection connection)
handleConnection connection = do
connectionHandle <- socketToHandle connection ReadWriteMode
handleMessage connectionHandle
hClose connectionHandle
handleMessage connectionHandle = forever $ do
message <- hGetLine connectionHandle
if shouldPushMessage message
then hPutStrLn targetConnection message
else return ()
Run Code Online (Sandbox Code Playgroud)
其中 targetConnection(在 handleMessage 中)来自一个单独的连接,并在不同的线程中挂起 handleMessage,等待其缓冲区被填充。我认为这会导致问题,因为我有 2 个线程访问同一个句柄。所以,我的问题是,为什么这不是问题?或者是这样,我只是还没有看到它变成一个问题?在我的实际应用程序中,当我获取 targetConnection 时,我是通过我通过 MVar 访问的地图来实现的,但是在 hGetLine 调用中并没有安全地访问它。
免责声明:我是一个完整的 Haskell 和多线程新手
感谢您的任何解释/见解!