我有一个MySQL 5.5,PHP5.4和phpMyAdmin 4.0的openshift应用程序,我想把它转换成可伸缩的。
因此,根据Shekhar在https://www.openshift.com/forums/openshift/recreate-an-existing-app-so-it-is-scaleable#comment-30153上的指示,我拍摄了这款旧应用的快照。
创建了一个新的可伸缩应用程序
$ rhc app create -s apiprod php-5.4 mysql-5.5 phpmyadmin-4因为旧的应用程序有phpMyAdmin -而且我们不能将phpmyadmin添加到可伸缩的应用程序中。所以创建了新的应用程序
$ rhc app create -s apiprod php-5.4 mysql-5.5 解锁旧快照,从旧快照中删除phpMyAdmin子目录,再次将其锁定,并尝试恢复到新的可伸缩应用程序--得到以下错误-
dev@ubuntusrv2:~$ rhc snapshot restore -a apiprod -f oldapp.tar.gz
Restoring from snapshot oldapp.tar.gz...
Removing old git repo: ~/git/apiprod.git/
Removing old data dir: ~/app-root/data/*
Restoring ~/git/apiprod.git and ~/app-root/data
Unable to restore mysql-5.5 because it appears there is no snapshot for that type
Activation status: success
RESULT:
Success现在,这个问题似乎类似于Molokov在https://www.openshift.com/forums/openshift/recreate-an-existing-app-so-it-is-scaleable#comment-33240上所经历的问题。
按照Molokov概述的步骤,我成功地将我的旧应用程序恢复到新的可伸缩应用程序中,没有出错。
但是mysqli::mysqli()似乎在连接数据库时遇到了问题-
命令行访问是可行的-
[apiprod-domain.rhcloud.com behat]\> echo $OPENSHIFT_MYSQL_DB_HOST
53182ea2500446463d00002e-domain.rhcloud.com
[apiprod-domain.rhcloud.com behat]\> mysql -h 53182ea2500446463d00002e-domain.rhcloud.com -u test -p
(can log in all right)返回到oldapp的ssh-ing显示了一个IP地址,而不是新的可伸缩应用程序上的主机名。
[apiv1-domain.rhcloud.com 53101d1e5004465baa000282]\> echo $OPENSHIFT_MYSQL_DB_HOST
127.3.76.130让我印象深刻的是,可以轻松地使用Openshift在线进行设置,并希望将其用于生产。
这应该是一个相当常见的用例--我很乐意知道该如何进行。
发布于 2014-03-06 14:32:13
不支持创建单个齿轮应用程序的快照并将其还原到缩放的应用程序,这是因为快照的创建方式,以及在缩放应用程序中db's etc使用它们自己的方式。如果将非缩放应用程序的快照还原到非缩放应用程序,则它目前不知道如何将数据库安装到数据库设备上。我相信,这个场景的正确解决方案实际上是在openshift上创建一个工作流,该工作流将促进按钮解决方案从非缩放解决方案迁移到缩放解决方案。请务必在这里投票(https://www.openshift.com/content/conversion-of-non-scalable-app-to-scalable-one)。
另外,下面是我刚刚发布的一篇知识库文章:https://www.openshift.com/kb/kb-e1092-user-is-not-able-to-restore-snapshot-of-non-scaled-application-to-scaled-application-or
https://stackoverflow.com/questions/22222076
复制相似问题