类似的问题已被问到很多.但是,我认为我的情况有点不同.我从Heroku(我在prod中使用sqlite3)向我的本地机器(使用PostgreSQL)中提取了一个数据库.prod db当时没有任何数据.
在那之后,我还没有进行任何db迁移来测试.现在我在dev db中有几个字段.但是,当我去测试控制台看看我有什么(引用User表)时,User.count返回0,但在dev中返回2个用户.
所以我做了rake db:migrate RAILS_ENV=test既没有错误信息也没有成功信息.我认为这是成功的,并检查测试数据库是否有这2个用户,但仍然没有.然后我试了一下bundle exec rake db:test:prepare.这是输出
**You have 4 pending migrations:
20120415210441 CreateUsers
20120418064930 AddIndexToUsersEmail
20120419034627 AddPasswordDigestToUsers
20120504031144 AddRememberTokenToUsers
Run `rake db:migrate` to update your database then try again.**
Run Code Online (Sandbox Code Playgroud)
解决办法是什么?
编辑: 仅供参考:我正在使用Windows我也运行rake db:migrate 并且我收到了此错误.
$ rake db:migrate
== CreateUsers: migrating ====================================================
-- create_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id"
INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), …Run Code Online (Sandbox Code Playgroud) 我正在处理一个包含多达一千行的文本文件.一个文本文件中有多个页眉和页脚.所以我不需要处理包含@h和@f的行.它告诉我事务的开始和结束(数据库事务,我将在一个事务中将这些记录保存到DB).
样本记录如下.虽然这条线达到了一千行而且列数达到了40列.从每一行我只寻找一个特定的数据,即(例如,我需要从位置8到30获取一个名字,从60到67岁的年份和喜欢的名字).该位置可能是下一个空格或字符串之间.因此,我不想将每行的数据放入缓冲区/内存中来处理它,因为我只对它们中的一些感兴趣.CSV文件是否允许从一行中的特定位置获取数据?我应该使用什么来获得更好的性能(尽可能快地处理数据而不占用太多内存.)?我正在使用Java
@h Header
@074VH01MATT TARA A5119812073921 RONG HI DE BET IA76200 201108222 0500 *
@074VH01KAYT DJ A5119812073921 RONG DED CR BET IA71200 201108222 0500 *
@f Footer
@h Header
@074VH01MATT TARA A5119812073921 RONG HI DE BET IA76200 201108222 0500 *
@074VH01KAYT DJ A5119812073921 RONG DED CR BET IA71200 201108222 0500 *
@f Footer
Run Code Online (Sandbox Code Playgroud) 我是Watir WebDriver的新手.我正在玩这个框架,我包括下面的代码,但第二行不起作用
$b = Watir::Browser.new :ie #browser
$b.goto "www.yahoo.com"
$b.link(:text => "Sign up").when_present.click
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它没有得到注册链接.我看到雅虎的消息来源如下
<span class="tab-caption small y-txt-2">New here? <a href="http://hsrd.yahoo.com/_ylt=A2KLtVHgLNtQHnMBTk.bvZx4/SIG=13tjppi7u/EXP=1356627552/**https%3A//edit.yahoo.com/registration%3F.src=fpctx%26.intl=us%26.done=http%253A%252F%252Fwww.yahoo.com%252F" class="y-link-1">Sign Up</a></span>
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题?我也试过没有when_present,它说元素是不可见的.
for (int i=0; i<100000; i++) {
// REST API request.
restTemplate.exchange(url, HttpMethod.GET, request, String.class);
}
Run Code Online (Sandbox Code Playgroud)
我有一种情况,我必须为10万用户请求一个资源,它需要70分钟才能完成.我试图尽可能地清理我的代码,我只能将它减少4分钟).
由于每个请求彼此独立,我很乐意并行发送请求(可能是10s,100s甚至1000s的块,每次快速完成).我希望我能把时间减少到10分钟或者接近的时间.如何计算哪个块大小可以快速完成工作?
我找到了以下方法,但我不知道该程序是否一次处理所有20个; 或一次5个; 或者一次10个.
IntStream.range(0,20).parallel().forEach(i->{
... do something here
});
Run Code Online (Sandbox Code Playgroud)
我知道你的帮助.我对任何建议或评论都持开放态度!
更新:我能够使用IntStream,并在28分钟内完成任务.但我不确定这是我能做的最好的.
java parallel-processing concurrency java.util.concurrent java-8
我在 Spring 控制器上有以下代码
@RequestMapping(value = "/download", method = RequestMethod.POST)
public void downloadActive(@RequestParam(value = "type") String offerType, HttpServletResponse response,
HttpSession session) throws Exception {
StringBuilder b = new StringBuilder();.
.
.
response.addHeader("Content-Disposition: ", "attachment; filename=my" + offerType + "Offers.csv");
response.getWriter().write(b.toString());
..
}
Run Code Online (Sandbox Code Playgroud)
当点击 EXt Js 的下载按钮时,此代码就会被执行。在 Chrome 上,它直接以 *.csv 格式下载文件,当用户打开它时,如果已经安装了 Excel,它将自动使用 Excel 打开文件,这是我想要的正确行为。
但是,在 Firefox 上,它会提示一个“另存为”窗口,其中包含“打开方式”和“保存”选项。如果我使用 open with 选项,它会告诉我文件名是 filename.csv 但类型是 chrome htm 文件。我没有在代码中的任何地方提到 htm,我不知道为什么它试图将其打开为 htm 而不是 csv 文件。一旦它尝试打开它,它会带来 Excel 应用程序,并且内容格式错误。
有没有办法在 Firefox 上避免这个问题?
谢谢
我找到了有关如何使用Office 365 rest API发送电子邮件的以下文档.
这是关于doucmentation的例子:
POST https://outlook.office.com/api/v2.0/me/sendmail
{
"Message": {
"Subject": "Meet for lunch?",
"Body": {
"ContentType": "Text",
"Content": "The new cafeteria is open."
},
"ToRecipients": [
{
"EmailAddress": {
"Address": "garthf@a830edad9050849NDA1.onmicrosoft.com"
}
}
],
"Attachments": [
{
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"Name": "menu.txt",
"ContentBytes": "bWFjIGFuZCBjaGVlc2UgdG9kYXk="
}
]
},
"SaveToSentItems": "false"
}
Run Code Online (Sandbox Code Playgroud)
如果用户授权应用程序代表它执行操作,则此方法正常.但是,我使用客户端信任来构建一个守护程序应用程序,代表给定租户中的所有用户,因此"POST https://outlook.office.com/api/v2.0/me/sendmail "无法正常工作因为它引用了"我",无法分辨哪个用户正在发送电子邮件.
如果你可以提供示例示例,我会谨慎行事.仅供参考:我使用的是Java,但您的答案不一定是Java.
exchange-server azure-active-directory adal outlook-restapi office365api
我在Stackoverflow上尝试了所有可能的答案,但无法解决。
我将以下xml作为字符串:
private static final String xmlStr = "<parameters>\n" +
" <parameter>\n" +
" <name>emp</name>\n" +
" <keyvalue>John Smith</keyvalue>\n" +
" </parameter>\n" +
" <parameter>\n" +
" <name>age</name>\n" +
" <keyvalue>22</keyvalue>\n" +
" </parameter>\n" +
" <parameter>\n" +
" <name>Birth Date</name>\n" +
" <keyvalue>02/05/1978</keyvalue>\n" +
" </parameter>\n" +
" <parameter>\n" +
" <name>password</name>\n" +
" <keyvalue>ye63633</keyvalue>\n" +
" </parameter>\n" +
"</parameters>";
Run Code Online (Sandbox Code Playgroud)
该参数可以用任何字符串替换(我尝试不成功),并且以下代码返回空文档:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new ByteArrayInputStream(xmlStr.getBytes("UTF-8")));
Run Code Online (Sandbox Code Playgroud)
我尝试用以下方式替换文档:
Document …Run Code Online (Sandbox Code Playgroud) 我问这个问题,因为我有一种情况,我有以下两种方法:
public T get(Serializable id) and
public T get(int id)
Run Code Online (Sandbox Code Playgroud)
我必须在大多数情况下使用第一种方法,而第二种方法已在我们的系统中弃用.
我的输入是String所以每次我需要调用时
get(Serializable id),我必须传递Integer而不是int,否则它将使用不推荐使用的第二种方法.即我打电话Integer.parseInt(str),然后我不得不专栏它整数(即(Integer)Integer.parseInt(str)),这似乎是多余的.
有没有更好的方法来实现这一点,为什么Integer.parseInt(str)return int而不是Integer的实现?
我正在按照本教程https://dev.outlook.com/restapi/tutorial/java进行操作,以便完成创建一个简单的Java Spring MVC应用程序的过程,该应用程序可以在Office 365或Outlook.com中检索邮件.
到目前为止我做了什么:
这里是控制器类:
@RestController
@RequestMapping("/auth")
public class AuthorizeController {
@RequestMapping(value = "/authorize", method = RequestMethod.GET)
public JasonMessage authorize(
@RequestParam("code") String code,
@RequestParam("id_token") String idToken,
@RequestParam("state") UUID state,
HttpServletRequest request) {
{
// Get the expected state value from the session
HttpSession session = request.getSession();
UUID expectedState = (UUID) session.getAttribute("expected_state");
UUID expectedNonce = (UUID) session.getAttribute("expected_nonce");
// Make sure that the state query parameter returned matches
// the expected state
if (state.equals(expectedState)) {
session.setAttribute("authCode", code); …Run Code Online (Sandbox Code Playgroud) 我是ruby on rails的新手,并开始了一个教程并找到了以下函数
def string_shuffle(s)
>> s.split('').?.?
>> end
=> nil
>> string_shuffle("foobar")
Run Code Online (Sandbox Code Playgroud)
怎么 s.split('').?.?办?我知道拆分方法,但我不知道这两个问号是什么.我看到"?在布尔方法中使用,但我无法理解这个是如何工作的.我试着谷歌但是,我根本找不到它.
java ×6
csv ×2
adal ×1
autoboxing ×1
azure ×1
browser ×1
concurrency ×1
file ×1
filereader ×1
integer ×1
java-8 ×1
office365 ×1
office365api ×1
parsing ×1
ruby ×1
selenium ×1
spring-mvc ×1
syntax ×1
testing ×1
unboxing ×1
watir ×1
xml ×1
xml-parsing ×1
xmldocument ×1