我想將database
複製到另一個位置,我不希望它位於另一個用戶的transaction
的中間。有沒有辦法鎖住database
?如何在yii中鎖定整個數據庫?
回答
覆蓋getDbConnection()
的CActiveRecord,並添加如果在使用像private $inUse
另一個屬性然後檢查這個,
或有一個表,但是這將是緩慢的檢查每一次。
我使用PostgreSQL。爲了備份數據庫,它使用一個外部工具(pg_dump),該工具獲取數據庫的穩定一致的快照。如果存在正在進行的事務,則快照將具有事務開始之前的狀態。我認爲MySQL有一個類似的工具。
無論你使用什麼數據庫服務器,如果你想知道是否有活動的事務,你可以使用你的數據庫的標準PDO object:
$db=Yii::app()->db;
$pdo=$db->getPdoInstance();
if ($pdo->inTransaction(){
echo "We have an active transaction";
} else {
echo "Let's start Database dump";
}
謝謝,但我還是錯過了一些東西,比方說我到了'else'部分,誰說那個人確實沒有開始交易? 順便說一句我正在使用SQLite – user1908466
你可以存儲在一個全局參數 - 看:[SetGolbalState](http://www.yiiframework.com/doc/api/1.1/CApplication#setGlobalState-detail) - 一個標誌指示該數據庫正在備份並在應用程序的每個控制器中進行檢查,以避免此標誌打開時出現該問題。 –
- 1. 的Neo4j:如何鎖定整個數據庫
- 2. 在mysql中使用數據庫命令鎖定整個數據庫?
- 3. 如何在android中鎖定多個線程的數據庫?
- 4. BerkeleyDB:整個數據庫的獨佔鎖
- 5. 在運行延遲作業時鎖定整個數據庫
- 6. 鎖定數據庫
- 7. 數據庫鎖定
- 8. 鎖定數據庫
- 9. 如何鎖定SQLite數據庫?
- 10. 如何鎖定sqlite數據庫?
- 11. Odoo如何處理數據庫鎖定?
- 12. 的SQLException:數據庫文件被鎖定(數據庫被鎖定)
- 13. 在sqlite中鎖定SQLite數據庫admin
- 14. 如何鎖定一個MySQL數據庫中的所有表?
- 15. 將整個mysql數據庫從休眠狀態鎖定
- 16. Innodb鎖定導致整個數據庫關閉
- 17. SQL Server事務 - 整個數據庫被鎖定?
- 18. 如何在yii框架中使用兩個數據庫
- 19. Yii - 如何上傳一個CSV保存在數據庫中?
- 20. 如何在cakephp和postgres數據庫中進行行鎖定?
- 21. 如何在Android中處理數據庫鎖定錯誤?
- 22. 如何在Python中鎖定sqlite3數據庫?
- 23. 如何在mysql中臨時鎖定數據庫
- 24. 同時鎖定兩個數據庫
- 25. Grails spock數據庫鎖定
- 26. SQLite數據庫被鎖定
- 27. 數據庫被鎖定?
- 28. 數據庫鎖定:ActiveRecord + Heroku
- 29. SQL數據庫被鎖定
- 30. VB.NET SQL數據庫鎖定
你找到你要找的東西? – tinybyte