Orm RedBean:如何从所有表中删除所有行

Orm RedBean:如何从所有表中删除所有行,orm,truncate,redbean,Orm,Truncate,Redbean,我正在使用红豆ORM。为了创建模式,我使用了标准的redbean方法插入数据,这样redbean就会自动适应模式以满足我的需要。我把它放在一个脚本中,当我需要初始化数据库时,这个脚本基本上用于构建模式 问题是RedBean在每个表中保留一行或两行(我最初插入这些行以使RedBean构建模式) 如果它是一个普通的数据库,要删除所有行,我只需删除模式并重建它,但在这种情况下,这是不可能的,因为初始行仍然存在 不幸的是,没有太多的红豆问答。有人知道我将如何使用Redbean接口实现这一点吗 我试过了

我正在使用红豆ORM。为了创建模式,我使用了标准的redbean方法插入数据,这样redbean就会自动适应模式以满足我的需要。我把它放在一个脚本中,当我需要初始化数据库时,这个脚本基本上用于构建模式

问题是RedBean在每个表中保留一行或两行(我最初插入这些行以使RedBean构建模式)

如果它是一个普通的数据库,要删除所有行,我只需删除模式并重建它,但在这种情况下,这是不可能的,因为初始行仍然存在

不幸的是,没有太多的红豆问答。有人知道我将如何使用Redbean接口实现这一点吗

我试过了

    $listOfTables = R::$writer->getTables();
foreach($listOfTables as $table)
{
    R::wipe($table);
}
当然,这是行不通的。(它没有按正确的顺序截断表,因此我得到一个关于另一个表的错误,该表使用此键作为外部链接。它只是按ABC顺序迭代)

如果有人有一个(红豆api)解决方案,我们将不胜感激。希望这个问题有助于在Stackoverflow上建立更多的红豆问答。

使用

R::nuke()


是的,它会删除所有表,但由于RedBeanPHP会动态创建所有表,所以这不是问题。

我知道这是一篇老文章,但我想今天我会帮助别人找到它。如果不关心数据完整性,可以告诉mysql忽略外键检查(计划擦除所有相关表)


总是有
R::nuke()
,但我认为这也会破坏所有表。除非删除外键,否则我不知道您是否可以擦除,我也不知道您是否可以简单地执行此操作。文档的相关部分:您只希望在开发环境中动态创建表,而不是在实时站点上创建表。这是文档的一部分:
Fatal error: Uncaught [42000] - SQLSTATE[42000]: Syntax error or access violation: 1701 Cannot truncate a table referenced in a foreign key constraint (`redbeandb`.`research`, CONSTRAINT `research_ibfk_1` FOREIGN KEY (`ownEducationHistory_id`) REFERENCES `redbeandb`.`educationhistory` (`id`)) thrown in C:\Users\Rod\nginx-1.0.12\html\rb.php on line 105
R::exec('SET FOREIGN_KEY_CHECKS = 0;');
$listOfTables = R::$writer->getTables();
foreach($listOfTables as $table)
{
    R::wipe($table);
}
R::exec('SET FOREIGN_KEY_CHECKS = 1;');