icemac15.wordpress.com<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"If you cannot access the root level in Zope 2 via the browser but you are able to use the debug console you have enough to undo transactions. Start the debug console: $ bin\/zinstance debug List the transaction descriptions, user names and ids of the last 10 transactions: >>> from pprint import pprint >>> pprint(app._p_jar.db().undoInfo(0, … Continue reading “Zope \u2013 undo transactions via debug console”<\/span><\/a><\/p>\n","protected":false},"author":15344399,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[10221],"tags":[196,832,306448,780014,72208],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pFP3y-PM","jetpack-related-posts":[{"id":3334,"url":"https:\/\/blog.gocept.com\/2019\/06\/14\/undo-transactions-by-truncating-zodb-data-fs\/","url_meta":{"origin":3210,"position":0},"title":"Undo transactions by truncating ZODB Data.fs","author":"Michael Howitz","date":"June 14, 2019","format":false,"excerpt":"truncate can be used to permanently set back a ZODB Data.fs to a certain point in transaction history.","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/06\/cord-4088055_1920.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/06\/cord-4088055_1920.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/06\/cord-4088055_1920.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/06\/cord-4088055_1920.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2019\/06\/cord-4088055_1920.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":74,"url":"https:\/\/blog.gocept.com\/2011\/05\/04\/how-to-undo-a-transaction-with-the-zodb\/","url_meta":{"origin":3210,"position":1},"title":"How-To: Undo a transaction with the ZODB","author":"","date":"May 4, 2011","format":false,"excerpt":"Suppose you've written a script to \"fix something real quick\" and unleashed it upon your live database. Five minutes later, you discover your script had a bug, and now you've wrecked quite a bit of production data. Ouch. You might be lucky, though, since the ZODB offers transaction-level undo. This\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":171,"url":"https:\/\/blog.gocept.com\/2012\/05\/22\/dont-stop-postgresqls-autovacuum-with-your-application\/","url_meta":{"origin":3210,"position":2},"title":"Don’t stop PostgreSQL’s autovacuum with your application","author":"","date":"May 22, 2012","format":false,"excerpt":"The problem Some weeks ago, we received a complaint from a customer about bad PostgreSQL performance for a specific application. I took a look into the database and found strange things going on: the query planner was executing \"interesting\" query plans, tables were bloated with lots of dead rows (one\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3265,"url":"https:\/\/blog.gocept.com\/2018\/10\/11\/beta-permission-for-earl-zope-extended\/","url_meta":{"origin":3210,"position":3},"title":"Beta permission for Earl Zope extended","author":"Michael Howitz","date":"October 11, 2018","format":false,"excerpt":"Earl Zope was hoping to get the final permission for the\u00a0Python 3 wonderland\u00a0on the\u00a0Saltlabs Sprint\u00a0in Halle last week. He has made good progress in settling down: Zope claims compatibility with the newest Python standards (Python 3.7). Earl Zope now has new cloths for his administrative interface (called ZMI) as shown\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"Bootstrap ZMI","src":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2018\/10\/bildschirmfoto-2018-10-11-um-11-36-35.png?fit=1030%2C619&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2018\/10\/bildschirmfoto-2018-10-11-um-11-36-35.png?fit=1030%2C619&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2018\/10\/bildschirmfoto-2018-10-11-um-11-36-35.png?fit=1030%2C619&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2018\/10\/bildschirmfoto-2018-10-11-um-11-36-35.png?fit=1030%2C619&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2789,"url":"https:\/\/blog.gocept.com\/2017\/10\/25\/testing-zope-4beta2\/","url_meta":{"origin":3210,"position":4},"title":"Migrating from Zope 2.13 to 4.0b2","author":"Michael Howitz","date":"October 25, 2017","format":false,"excerpt":"Beta-Testing Zope 4 together with PerFact Innovation","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1752,"url":"https:\/\/blog.gocept.com\/2016\/10\/04\/zope-resurrection-part-2-defibrillation\/","url_meta":{"origin":3210,"position":5},"title":"Zope Resurrection Part 2 \u2013 Defibrillation","author":"Michael Howitz","date":"October 4, 2016","format":false,"excerpt":"After\u00a0reanimation\u00a0we started\u00a0defibrillation of Zope and \u2026 it kinda worked: On our\u00a0sprint we got\u00a0the following things done to help\u00a0Zope in the Python 3 wonderland: Release\u00a0zope.testbrowser 5.0\u00a0which is compatible with Python 3 and no longer uses\u00a0mechanize. PullRequest for\u00a0ExtensionClass\u00a0with the Python 3 port of the C extension. five.globalrequest\u00a0is now compatible with Python 3.\u2026","rel":"","context":"In "en"","block_context":{"text":"en","link":"https:\/\/blog.gocept.com\/category\/en\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2016\/10\/zopesprint.jpg?fit=1200%2C709&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2016\/10\/zopesprint.jpg?fit=1200%2C709&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2016\/10\/zopesprint.jpg?fit=1200%2C709&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2016\/10\/zopesprint.jpg?fit=1200%2C709&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog.gocept.com\/wp-content\/uploads\/2016\/10\/zopesprint.jpg?fit=1200%2C709&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/posts\/3210"}],"collection":[{"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/users\/15344399"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/comments?post=3210"}],"version-history":[{"count":1,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/posts\/3210\/revisions"}],"predecessor-version":[{"id":3211,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/posts\/3210\/revisions\/3211"}],"wp:attachment":[{"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/media?parent=3210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/categories?post=3210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gocept.com\/wp-json\/wp\/v2\/tags?post=3210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}