Autistici/Inventati (A/I) 是一个致力于通过提供免费、独立的互联网服务(如电子邮件、托管和聊天)来夺回数字空间的集体,旨在服务于那些参与社会与政治斗争的人们。A/I 拒绝主流网络平台的商业化和审查,秉持自我管理、集体决策和知识自由交换的原则。 该项目存在于机构权力结构之外,刻意排除商业实体、政党和宗教组织。相反,它通过倡导开源软件、反对限制性版权并揭示技术政治的本质,来支持草根运动。 所有的运营完全依靠自愿捐款维持,确保没有任何成员从中获利,并使该集体免受企业或外部的影响。该组织没有等级制度、发言人或投票系统,而是依赖透明的集体讨论来应对数字基础设施与现实世界行动主义之间的交汇。通过融合对技术的好奇心(Autistici)和创造性的问题解决方式(Inventati),该集体努力提供独立沟通所需的工具,证明数字资源可以通过公共管理来促进社会变革。
您可以在 Flyway 社区版中实现自动回滚功能,而无需购买 Teams 许可证,其方法是将“撤销”(undo)操作视为向前推进的迁移。
该策略包含三个关键步骤:
1. **准备:** 维护一个存放 `.down.sql` 脚本的目录,这些脚本需与您的版本化迁移相对应。
2. **执行:** 当触发回滚时,系统会识别最后一批已执行的迁移,创建一个临时目录,并生成“合成”迁移。这些迁移使用更高的版本号(以满足 Flyway “始终向前”的规则),并包含原始脚本的逆向逻辑。
3. **清理:** `afterMigrate.sql` 回调会在同一事务中执行一条 `DELETE` 语句,从 `flyway_schema_history` 表中清除原始记录和合成记录。
通过使用 `-group=true` 标志,整个过程被封装在一个数据库事务中,从而确保了原子性。这会创建一个干净的“撤销”状态,使数据库恢复到之前的模式,并将原始迁移再次显示为“待处理”。虽然这需要手动创建降级脚本并直接操作模式历史表,但它为付费企业功能提供了一种稳健且免费的替代方案。