【问题标题】:How to see database from a POST request?如何从 POST 请求中查看数据库?
【发布时间】:2021-09-03 07:30:15
【问题描述】:

我正在使用 GraphQL API 在 Ruby on Rails 中开发一个应用程序。我们的数据库是 MySQL。

在我的测试文件中,我有一个 POST 请求到我们应用的暂存站点:post "https://apistaging.app.com/graphql"

有没有办法从这个请求中查看数据库和表?有没有办法从这个请求中执行SELECT * FROM table?还是只能使用架构中定义的查询和突变?我想查看暂存站点上的数据,因为我的突变不起作用。

谢谢。

【问题讨论】:

    标签: mysql sql ruby-on-rails unit-testing graphql


    【解决方案1】:

    不理想,您绝对不想在生产环境中执行此操作,但您可能可以使用 find_by_sql 子句对完全不同的表进行搜索

     Determinand.find_by_sql('select tests.* from tests where "SHORTNAME" like \'Shipping\'').count
      Determinand Load (0.7ms)  select tests.* from tests where "SHORTNAME" like 'Shipping'
    => 7
    

    但不要在生产环境中这样做,因为对象的类基于原始对象的类,这会导致调试噩梦:

    Determinand.find_by_sql('select tests.* from tests where "SHORTNAME" like \'Shipping\'').first.class
     => Determinand(id: integer, ...
    

    【讨论】:

    • 那么有没有更好的方法来测试来自 POST 的数据?因为我正在测试登录突变,我可以在 Altair 上登录,但我无法在测试文件中成功复制突变
    • 以开发模式运行数据库并检查日志中的输出?或者设置byebug,然后在byebug激活时访问控制台中的数据?我的回答“解决了”您需要一个类来访问未建模表中的对象的问题,但如果您正在变异,它不会让您解决潜在的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    相关资源
    最近更新 更多